Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何从boost创建库?_Linux_Boost_Llvm - Fatal编程技术网

Linux 如何从boost创建库?

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

我将boost的一部分用于一个项目(仅用于消息队列)。如果我使用本机代码,hpp文件就可以了。但我需要LLVM位代码文件中的消息队列(我正在程序中执行位代码),并得到以下错误:

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]添加到您的构建中