Articles of boost

交叉编译PowerPC架构的Boost库

我正在尝试为PowerPC体系结构交叉编译Boost库(Thread,System)。 我遵循下面的步骤,但面临的问题。 我运行一个shell脚本来设置我的工具链。 编译器ppc_4xx-g ++在shell中可见。 步骤如下: 添加一行“using gcc:power:ppc_4xx-g ++;” 到文件user-config.jam 在根目录下运行./bootstrap.sh –prefix = BoostPowerPC。 运行./b2 install –build-dir = BoostPowerPC工具集= gcc-power –with-thread –with-system stage 结果:所有的目录被创build,但编译失败。 我不能附上错误日志(请给我你的电子邮件,以便我可以发送错误日志,如果你需要的话)。 以下是错误日志的快照。 Component configuration: – atomic : not building – chrono : not building – context : not building – date_time : not building – exception : not building – filesystem […]

如何在Linux上安装自定义gcc的boost?

我的gcc编译器位于自定义位置/ my / path / hpgcc 我已经下载了boost源码。 执行bootstrap.sh,但因为它使用默认的gcc运行,所以失败。 看着它,我发现它在第一件事情上失败了:构buildBoost.Build引擎: gcc -o bootstrap/jam0 command.c compile.c debug.c expand.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c pathvms.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c […]

ECDSA证书问题提升asio

我正在使用boost :: asio实现SSL服务器。 上下文初始化显示在下面的代码中 boost::asio::ssl::context_base::method SSL_version = static_cast<boost::asio::ssl::context_base::method>(param_values[ID_PROTOCOL_VERSION].int32_value); // load certificate files boost::shared_ptr<boost::asio::ssl::context> context_ = boost::shared_ptr<boost::asio::ssl::context>( new boost::asio::ssl::context(SSL_version)); p_ctx = boost::static_pointer_cast<void>(context_); context_->set_options(boost::asio::ssl::context::default_workarounds); context_->use_certificate_chain_file(cert_chain_file); context_->use_certificate_file(cert_file, boost::asio::ssl::context::pem); context_->use_private_key_file(cert_file, boost::asio::ssl::context::pem); context_->set_verify_mode(boost::asio::ssl::verify_peer | boost::asio::ssl::verify_fail_if_no_peer_cert); context_->set_verify_callback(boost::bind(&verify_certificate_cb, _1, _2)); if (param_values[ID_CIPHER_LIST].int32_value != 0) { std::string cipher_list = ""; generate_cipher_list(param_values[ID_CIPHER_LIST].int32_value, cipher_list); MA5G_logger::log(PRIORITY_INFO, "Supported cipher list %s", cipher_list.c_str()); SSL_CTX_set_cipher_list((reinterpret_cast<boost::asio::ssl::context*>(p_ctx.get()))->native_handle(), cipher_list.c_str()); } 在cipher_list ,我支持下面的列表 […]

找不到助推库

这是一个非常基本的问题,我只是张贴,因为我已经花了一些时间。 这是我迄今为止所做的: 下载并编译boost库: sudo ./bootstrap.sh和sudo ./bjam install 这样它就被安装到/usr/local/lib 。 在我的源代码中,我只添加了: #include <boost/asio.hpp> using boost::asio::ip::tcp 我编译它: g++ -I/usr/lib/jvm/java-6-openjdk/include -L/usr/local/lib -fPIC -lboost_system -shared -o libagent.so agent.cpp 但是, ldd -d ./libagent.so给我: libboost_system.so.1.46.1 => not found 但是,在使用-lboost_system和ls /usr/local/lib时,不会引发任何错误: libboost_system.so libboost_system.a 我错过了什么?

提升日志,GCC 4.4和CMake

我正在尝试使用GCC 4.4.5,CMake 2.8.2和Boost 1.53.0在Linux上运行一个简单的boost.log示例。 编译boost和boost日志成功了,但是当我的testing程序连接到boost.log时,我一直在收到问题。 我使用下面的CMakeLists.txt文件: cmake_minimum_required(VERSION 2.8) project(QuantibBoostLogTest) # Include boost headers set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) find_package(Threads) find_package(Boost 1.53.0 COMPONENTS thread date_time filesystem system log log_setup REQUIRED) if(Boost_FOUND) include_directories( ${Boost_INCLUDE_DIRS} ) link_libraries(${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) else(Boost_FOUND) message(FATAL_ERROR "Cannot build Quantib Boost Log test without Boost. Please set Boost_DIR.") endif(Boost_FOUND) add_executable(quantibBoostLogTest boost_log_test.cxx) install(TARGETS quantibBoostLogTest DESTINATION .) CMake确实检测到boost库,但我仍然得到链接器错误,主要是forms: […]

为什么使用std :: thread :: hardware_concurrency()和boost :: thread :: hardware_concurrency()有区别?

问题本身的描述非常简单。 我正在testing在C + + 11和boost ::线程库的std ::线程库的差异。 这些输出: #include <iostream> #include <thread> #include <boost/thread.hpp> int main() { std::cout << std::thread::hardware_concurrency() << std::endl; std::cout << boost::thread::hardware_concurrency() << std::endl; return 0; } 给了我不同的结果: 0 4 这是为什么? PS:gcc软件包的版本是4.6.2-1.fc16(x86_64)。 我在用着 g++ test.cc -Wall -std=c++0x -lboost_thread-mt -lpthread

试图静态链接提升

我正在使用Boost库在Linux,Eclipse CDT,g ++中工作。 现有的使用Boost线程的程序,我尝试静态而不是dynamic地链接它。 / usr / local / lib目录包含以下文件: libbost_thread.a libbost_thread.so libbost_thread.1.41.0 dynamic链接工作: g++ -o"MyProgram" ./main.o -lboost_thread 静态链接: g++ -static -o"MyProgram" ./main.o -lboost_thread 产生大量的消息,如: 未定义的引用'pthread_mutex_init' 我怎样才能静态链接到Boost库?

在Linux中链接Boost库

我正在尝试使用Boost的Asio来构build一个项目,而且我遇到了一些麻烦。 最初,我试图build立没有任何额外的库的项目,因为一切都应该在头文件。 我正在尝试构build的程序如下所示: #include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> int main() { boost::asio::io_service io; boost::asio::deadline_timer t(io, boost::posix_time::seconds(5)); t.wait(); std::cout << "Hello, world!" << std::endl; return 0; } 它可以在Boost的网站上find。 所以,最初我只是: -I /usr/include/boost_1_40_0 这导致了以下错误: make -k all Building target: HelloWorld Invoking: GCC C++ Linker g++ -o"HelloWorld" ./main.o ./main.o: In function `__static_initialization_and_destruction_0': /usr/include/boost_1_40_0/boost/system/error_code.hpp:205: undefined reference to `boost::system::get_system_category()' /usr/include/boost_1_40_0/boost/system/error_code.hpp:206: […]

创buildLinux make / build文件

我将一个C ++项目从Windows移到Linux,现在我需要创build一个build / make文件。 我以前从来没有创build过构build/制作文件。 我还需要包含Boost库以使其更加复杂。 它也必须是一个makefile,我需要学习如何创buildmakefile,所以CMake和SCON都不在了。 由于Boost的使用,IDE也出来了,我所有的IDE(Eclipse,VS等)都只能在windows上运行。 我必须从头开始生成一个makefile。 那么创build一个Linux c ++ make文件的基础是什么,以及如何将Boost库合并到一起以便正确链接? 到目前为止,我的makefile看起来像这样。 我认为CFLAGS和LDFLAGS是编译器和优化选项,但不完全确定。 CC = g++ CFLAGS = -wall -o3 – c LDFLAGS = -03 -mfp-rounding-mode=n 我提供一个赏金,因为我仍然很迷茫。 如果有人感到冒险,我需要在Linux中编译以下内容 simple_ls.h simple_ls.cpp 2dquicksort.h rawr.h rawr.cpp converter.cpp simple_ls.h中的头文件: #include "boost/filesystem/operations.hpp" #include "boost/filesystem/path.hpp" #include "boost/lexical_cast.hpp" #include <iostream> #include <vector> #include <string> #include <algorithm> 2dquicksort.h中的头文件: #include <stdio.h> #include […]

版本'CXXABI_1.3.8'找不到(需要…)

当我编译后运行我的程序时,出现以下错误: ./prog:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:版本CXXABI_1.3.8' not found (required by ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.19'找不到(需要./prog)./prog:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本'GLIBCXX_3.4.20'( /home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0需要) 我同时在~/lib/boost_1_55_0和~/lib/gcc-4.9.0分别安装了~/lib/boost_1_55_0和~/lib/gcc-4.9.0 ,我猜这就是为什么我有问题,但是我不确定关于如何去解决它。 我的~/.profile包含以下行: export LD_LIBRARY_PATH = / home / user / lib / boost_1_55_0 / stage / lib:$ LD_LIBRARY_PATH