2016-03-30 8 views
0

У меня есть некоторый наддув в зависимости от кода, я хочу, чтобы скомпилировать в виде динамической библиотеки:Удалить библиотеку зависимости

g++ -Wall -fPIC -o myclass.o -c myclass.cpp 
g++ -shared -Wl,-soname,myclass.so.1 -o lib/myclass.so.1 myclass.o -lc 

Однако после компиляции я замечаю еще повышающая зависимость (я проверяю с ldd)

ldd lib/myclass.so.1 
linux-vdso.so.1 (0x00007fff741fd000) 
libboost_system.so.1.60.0 => /usr/lib/libboost_system.so.1.60.0 (0x00007f7945649000) 
libboost_serialization.so.1.60.0 => /usr/lib/libboost_serialization.so.1.60.0 (0x00007f794540b000) 
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f7945089000) 
libm.so.6 => /usr/lib/libm.so.6 (0x00007f7944d83000) 
libc.so.6 => /usr/lib/libc.so.6 (0x00007f79449e2000) 
/usr/lib64/ld-linux-x86-64.so.2 (0x00005590726ae000) 
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f79447cc000) 
librt.so.1 => /usr/lib/librt.so.1 (0x00007f79445c3000) 
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f79443a6000) 

Есть ли способ удалить динамическую зависимость boost от моей общей библиотеки (упаковать текущую версию ускорения объектов, которые я вызываю в .so)?

+0

Вы пытались 'ldd -v' проверить, не связаны ли библиотеки с ссылками на Boost? – jotik

ответ

0

все, что вы сделали правильно. Что-то, что происходит в C++, легко забыть, чтобы перекомпилировать что-то. удалить все .o файлы (и другие вещи) и попробовать снова

0

g++ -shared -Wl,-soname,myclass.so.1 -o lib/myclass.so.1 myclass.o -lc

Однако после компиляции я замечаю еще повышающий зависимость

Вы имеете в виду «после того, как связь».

no для команды связи, которую вы дали для создания библиотеки, которая зависит от повышения, если ваш g++ на самом деле не является псевдонимом для чего-то другого.

Если это псевдоним, не используйте его. Если у вас есть взломанный g++ или если вы изменили его файл specs, не делайте этого.

Если вы не указали команду , сообщите нам фактическую команду (и удалите ее из нее).

+0

Я использовал эту команду специально для makefile и запускал 'ldd' в файле .so. И сама библиотека, и двоичные файлы, связанные с ней, показывают зависимости от boost. – joaocandre

 Смежные вопросы

  • Нет связанных вопросов^_^