Comments (4)
Hi! Thanks for reporting this.
Today is too late in my country. I'll take a look tomorrow.
from sobjectizer.
I don't know is it a correct way to go but if I change a line in ~/.conan/profiles/default
:
- compiler.libcxx=libstdc++
+ compiler.libcxx=libstdc++11
and then perform commands:
conan install ../ --build=missing
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release
then the sample program compiled and linked without an errors.
from sobjectizer.
I suppose that the problem in the flag _GLIBCXX_USE_CXX11_ABI=0
that is added when Boost is mentioned in conanfile.txt
.
If you don't use Boost then sample project is compiled with the following flags:
CXX_FLAGS = -O2 -DNDEBUG -std=gnu++17
CXX_DEFINES = -DSO_5_STATIC_LIB
CXX_INCLUDES = -isystem /root/.conan/data/sobjectizer/5.7.1/stiffstream/stable/package/2a30b7d6ea2202e5393ebda51c8729dd2162b9f8/include
But if Boost is added then an additional flag is added:
CXX_FLAGS = -O2 -DNDEBUG -D_GLIBCXX_USE_CXX11_ABI=0 -std=gnu++17
CXX_DEFINES = -DSO_5_STATIC_LIB
CXX_INCLUDES = -I/root/.conan/data/boost/1.73.0/_/_/package/91ae5bfe3845753bb397c926531b17117d20c8f9/include -I/root/.conan/data/zlib/1.2.11/_/_/package/6af9cc7cb931c5ad942174fd7838eb655717c709/include -I/root/.conan/data/bzip2/1.0.8/_/_/package/da606cf731e334010b0bf6e85a2a6f891b9f36b0/include -isystem /root/.conan/data/sobjectizer/5.7.1/stiffstream/stable/package/2a30b7d6ea2202e5393ebda51c8729dd2162b9f8/include
And I think that the presence of _GLIBCXX_USE_CXX11_ABI
leads to different name mangling and because of that names of some SObjectizer's methods can't be found in the static library that was built (I suppose) without _GLIBCXX_USE_CXX11_ABI
.
Unfortunately, I'm not an expert in Conan nor CMake and don't know how to fix it quickly. It needs some time for further investigation.
from sobjectizer.
Thank you so much! Your advice is working!
If you do not want to patch ~/.conan/profiles/default
, you may specify compiler.libcxx
by the following flag in conan install
: -s compiler.libcxx=libstdc++11
. The resulting commands are:
conan install ../ --build=missing -s compiler.libcxx=libstdc++11
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release
from sobjectizer.
Related Issues (20)
- A usage example for agent_t::limit_then_redirect method in API Reference HOT 1
- [Design] Your opinion on expressing agent intent HOT 2
- Deprecation of coop_t::deregister and coop_t::deregister_normally methods HOT 1
- [idea] An emergency stop of SOEnv on an exception in noexcept context HOT 1
- `so_evt_finish` not called until `so_evt_start` is running? HOT 2
- Should agent_t::so_drop_subscription* methods be marked as noexcept? HOT 1
- Should delivery filters be checked for noexcept-ness?
- bind_and_transform HOT 10
- so_5::details::make_message_instance_impl metafunction doesn't set message mutability flag properly HOT 1
- limit_then_transform for mutable messages HOT 1
- Allow `const auto &` as an argument for delivery filter in single/multi_sink_binding HOT 1
- Should there be agent_t::so_disp_binder() and agent_t::so_coop_default_disp_binder() methods? HOT 2
- [idea] Make so5extra's revocable timers the default implementation for timers in SObjectizer
- Another constructor for wrapped_env_t that waits completion of init-function HOT 1
- Use of message limits and state_t::time_limit
- Optional name for an agent? HOT 2
- New method `as_string_view` for so_5::stats::prefix_t and so_5::stats::suffix_t HOT 1
- SO_5_TYPE shouldn't be used for so_5::stats::messages::quantity
- Integrating with GUI applications HOT 1
- Add lock_shared/unlock_shared to so_5::null_mutex_t
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sobjectizer.