Linux 如何从boost创建库?
我将boost的一部分用于一个项目(仅用于消息队列)。如果我使用本机代码,hpp文件就可以了。但我需要LLVM位代码文件中的消息队列(我正在程序中执行位代码),并得到以下错误:Linux 如何从boost创建库?,linux,boost,llvm,Linux,Boost,Llvm,我将boost的一部分用于一个项目(仅用于消息队列)。如果我使用本机代码,hpp文件就可以了。但我需要LLVM位代码文件中的消息队列(我正在程序中执行位代码),并得到以下错误: LLVM ERROR: Program used external function 'shm_unlink' which could not be resolved! 有人告诉我,用boost所需的部分构建一个库是解决这个问题的最佳方法 我所做的(在boost目录中): 然后在我的程序目录中: gcc -I . -c
LLVM ERROR: Program used external function 'shm_unlink' which could not be resolved!
有人告诉我,用boost所需的部分构建一个库是解决这个问题的最佳方法
我所做的(在boost目录中):
然后在我的程序目录中:
gcc -I . -c boost/interprocess/ipc/message_queue.hpp -o ipc.o
ar -cvq libipc.a ipc.o
ranlib libipc.a
llvm-g++ -Wall -O3 -static -L../../Release/lib -lipc -I../../include -I../../../boost_1_44_0 -fexceptions -emit-llvm tmp.cpp -o tmp.bc
现在,如果我在程序中包含boost头,我会得到:
../../Release/lib/libipc.a: could not read symbols: Archive has no index; run ranlib to add one
如果我不包括它们,我会得到一些错误,这些错误都与未声明的消息队列有关
我做错了什么?更重要的是,如何解决这个问题?实时库librt中提供了shm_unlink,iirc。将链接[gcc flag-lrt]添加到您的构建中