Как создать библиотеку из Boost? - PullRequest
1 голос
/ 25 ноября 2010

Я использую часть наддува для проекта (только message_queue).Если я использую нативный код, файл 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-header, я получу:

../../Release/lib/libipc.a: could not read symbols: Archive has no index; run ranlib to add one

Если я их не включу, я получу некоторые ошибки, связанные с необъявлением message_queue.

Что я делаю не так?И что более важно, как мне решить эту проблему?

1 Ответ

0 голосов
/ 26 января 2011

shm_unlink, iirc, предоставляется в библиотеке реального времени librt. Добавьте ссылку [gcc flag -lrt] в вашу сборку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...