我的项目中有一个可执行文件和一个共享库。 共享库使用boost库。 可执行文件使用olny共享库。 tilenet/ <– Project ttest/ <– Test (executable) CMakeLists.txt tilenet/ <– The shared library CMakeLists.txt CMakeLists.txt <– Root CMake-file 根Cmake文件: cmake_minimum_required(VERSION 2.6) project(tilenet) set(Boost_USE_STATIC_LIBS OFF) # I've already tried ON set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME OFF) find_package(Boost 1.49 COMPONENTS system filesystem REQUIRED) include_directories(${Boost_INCLUDE_DIRS}) add_subdirectory(test) add_subdirectory(tilenet) t检验/的CMakeLists.txt add_executable(ttest test.cpp) target_link_libraries(ttest tilenet ${BOOST_LIBRARIES}) tilenet /的CMakeLists.txt include_directories("include") set(tilenet_src […]
我尝试从运行Linux的个人电脑交叉编译boost 1.52.0版本的freescale ARM处理器板。 基于交叉编译boost (相当less)的文档,我已经设置了一个user-config.jam文件,内容如下: using gcc : arm : /mnt/lv1/src/ROM1210/cross_compiler/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-g++ ; 我然后跑了 bootstrap.sh –prefix=`realpath ../tools` ./b2 toolset=gcc-arm 结果是: /mnt/lv1/src/ROM1210/extras/boost_1_52_0/tools/build/v2/tools/gcc.jam:107: in gcc.init from module gcc error: toolset gcc initialization: error: version 'arm' requested but 'g++-arm' not found and version '4.3.2' of default 'g++' does not match error: initialized from /mnt/lv1/src/ROM1210/extras/boost_1_52_0/tools/build/v2/build/toolset.jam:39: in toolset.using from module toolset […]
通常我可以谷歌我的方式find解决scheme,但不是这次。 我正在使用64位Linux Ubuntu 11.04来编译32位Windows应用程序。 我使用i586-mingw32msvc-gcc编译我的C ++文件。 TEST.CPP: #include <boost/asio.hpp> 生成文件: i586-mingw32msvc-gcc -c -m32 -mthreads -o test.o test.cpp 错误: boost/asio/detail/socket_types.hpp: # include <sys/ioctl.h> doesn't exist. 添加到makefile:-DBOOST_WINDOWS Error: # warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately 好的,添加到makefile:-D_WIN32_WINNT = 0x0501 Error: # error "Compiler threading support is not turned on. Please set the correct command line options for […]
我有以下代码的问题: #include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> #include <iostream> #include <sys/types.h> #include <sys/wait.h> using namespace std; void f1(uint count) { while(count– > 0) { // boost::this_thread::sleep(boost::posix_time::millisec(1000)); sleep(1); } } void folkflore() { int res = fork(); //parent if ( res ) { wait(NULL); } else { unsigned int x = 2; boost::thread tx(boost::bind(f1, 2)); tx.join(); _exit(-5); } […]
我正在考虑对一个项目使用boost_log,并在一开始就面临以下问题。 升压日志示例我发现: http : //www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_file.cpp无法编译。 其他更简单的例子(没有汇)我编译没有问题。 g++ -std=c++11 boost_log_sinks.cpp -DBOOST_LOG_DYN_LINK -lboost_log -lpthread / usr / bin / ld:/tmp/ccApJdsi.o:对符号'_ZN5boost6detail12get_tss_dataEPKv'的未定义引用//usr/lib/x86_64-linux-gnu/libboost_thread.so.1.54.0:添加符号时出错:命令行中缺lessDSO collect2:错误:ld返回1退出状态 我在Ubuntu14.04上工作我的g ++版本是g ++(Ubuntu 4.8.2-19ubuntu1)4.8.2 有谁知道这是为什么发生?
我将写一个适配器类。 在这个类中有一个xmlrpc-c服务器(深渊服务器)。 我想通过创build一个新线程来启动服务器,线程的函数是成员函数XMLThreadFun() 。 当我尝试使用下面的代码时,在适配器的构造函数实现的行上出现错误: /usr/include/boost/bind/bind.hpp:69:37: error: 'void (Adapter::*)()' is not a class, struct, or union type 谁能告诉我如何解决这个错误,或如何实现我的目标? 对此,我真的非常感激。 以下是我的代码片段: #ifdef _MSC_VER #pragma warning( disable : 4503 4355 4786 ) #else #include "config.h" #endif #include "quickfix/FileStore.h" #include "quickfix/SocketInitiator.h" #include "quickfix/SessionSettings.h" #include "Application.h" #include <string> #include <iostream> #include <fstream> #include "quickfix/SessionID.h" #include "quickfix/Session.h" #include "getopt-repl.h" #include […]
我试图使用一个类似mmap的段来分配stl容器上的对象,因为我使用了boost :: interprocess,它提供了内存映射,分配器和匿名内存映射支持。 有点像这样 我的问题是, 这里的anonymous_shared_memory函数返回的东西看起来是半映射文件和半共享内存(与mmap :)有意义),虽然这两种样式与进程间分配器一起工作,但看起来像缺less一个实际块分配的segment_manager。 因为它返回已经映射到进程但没有pipe理器的高级mapped_region ,也没有办法让我看到在segment_manager挂钩。
我对Linux文件系统并不十分熟悉,从Windows移植过来,但是我在C ++和Windows中的Boost库方面有很多经验。 换了Fedora 17,谁能告诉我,如果有一个特定的目录,我应该安装Boost让它工作的GUN编译器? 注意:如果重要的话,我不使用IDE,我使用vim进行大部分编程。
我知道getopts和argp 。 我只是看着boost ,他们有program_options作为parsing命令行参数库。 我不确定要使用哪一个。 我知道getopts是POSIX ,而argp不是,但对我无关紧要。 重要的是易用性。 你能推荐一个(优点/缺点?)吗? 我也向其他图书馆开放。
我希望有一个简单的方法来做这件事,但即使在一些强烈的Googlesearch中,我也没有发现这一点。 我怎样才能使用boost :: filesystem来查找符号链接(在* nix系统上)指向的位置?