Opened 8 years ago
Last modified 7 years ago
#11064 closed Support Requests
boost support c++11 with Solaris Studio 12.4 — at Initial Version
Reported by: | zhifan | Owned by: | |
---|---|---|---|
Milestone: | To Be Determined | Component: | log |
Version: | Boost 1.57.0 | Severity: | Problem |
Keywords: | Cc: |
Description
My Environment:
- boost_version: 1_57
- solaris stuation version: SolarisStudio12.4-solaris-sparc-bin.tar.bz2 (download yesterday)
- OS version: bash-3.2$ cat /etc/release
Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
Assembled 23 August 2011
bash-3.2$ cd tools/build/src/engine/ bash-3.2$ ./build.sh sun bash-3.2$ tools/build/src/engine/bin.solarissparc/bjam toolset=sun --prefix=/export/home/oracle/zhifan/boost address-model=64 --disable-icu --with-regex --with-log --with-program_options -j64 install With some code fix in boost, I can run the above command without any "failed". Here is my simple test code: bash-3.2$ cat boost_log.cc #include <boost/log/core.hpp> #include <boost/log/trivial.hpp> #include <boost/log/expressions.hpp> #include <vector> int main() { std::vector<int> a{1, 2, 3,4,5}; for (auto i : a) {
BOOST_LOG_TRIVIAL(fatal) << "RedoFile::init ";
} return 0; } bash-3.2$ CC -mt -std=c++11 -m64 -I/export/home/oracle/zhifan/boost/include -DBOOST_LOG_DYN_LINK -L/export/home/oracle/zhifan/boost/lib -lboost_log -DBOOST_LOG_DYN_LINK boost_log.cc -o boost_log "/export/home/oracle/zhifan/boost/include/boost/log/utility/formatting_ostream.hpp", line 551: Error: Cannot use boost::log::v2_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char>>::sentry to initialize bool. "boost_log.cc", line 10: Where: While instantiating "boost::log::v2_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char>>::operator<<(const char*)". "boost_log.cc", line 10: Where: Instantiated from non-template code. "/export/home/oracle/zhifan/boost/include/boost/log/utility/formatting_ostream.hpp", line 551: Error: An expression of scalar type was expected. "boost_log.cc", line 10: Where: While instantiating "boost::log::v2_mt_posix::basic_formatting_ostream<char, std::char_traits<char>, std::allocator<char>>::operator<<(const char*)". "boost_log.cc", line 10: Where: Instantiated from non-template code. 2 Error(s) detected.
But if I compile this code with boost library compiled by gcc, it works perfectly.
bash-3.2$ g++ -pthread -std=c++11 -m64 -I/export/home/oracle/zhifan/boost_gcc/include -DBOOST_LOG_DYN_LINK -L/export/home/oracle/zhifan/boost_gcc/lib -lboost_log -DBOOST_LOG_DYN_LINK boost_log.cc -o boost_log bash-3.2$ export LD_LIBRARY_PATH=/export/home/oracle/zhifan/boost_gcc/lib:$LD_LIBRARY_PATH bash-3.2$ ./boost_log [2015-02-27 23:26:21.436813] [0x10000000] [fatal] RedoFile::init [2015-02-27 23:26:21.438511] [0x10000000] [fatal] RedoFile::init [2015-02-27 23:26:21.438591] [0x10000000] [fatal] RedoFile::init [2015-02-27 23:26:21.438662] [0x10000000] [fatal] RedoFile::init [2015-02-27 23:26:21.438735] [0x10000000] [fatal] RedoFile::init