【发布时间】:2016-07-20 15:18:31
【问题描述】:
我正在尝试编译一些带有我想用作动态共享库的 boost 依赖项的代码,但没有任何 boost 依赖项(不需要安装 boost)。我该怎么做?
我正在编译我的代码:
g++ -Wall -fPIC -o myclass.o -c myclass.cpp
g++ -shared -Wl,-soname,myclass.so.1 -o lib/myclass.so.1 myclass.o -lc
但是,构建的库显示了几个 boost 依赖项,因为
ldd lib/myclass.so.1
产生输出:
linux-vdso.so.1 (0x00007fffda9df000)
libboost_system.so.1.60.0 => /usr/lib/libboost_system.so.1.60.0 (0x00007f934e776000)
libboost_serialization.so.1.60.0 => /usr/lib/libboost_serialization.so.1.60.0 (0x00007f934e538000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f934e1b6000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f934deb0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f934db0f000)
/usr/lib64/ld-linux-x86-64.so.2 (0x000055802a452000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f934d8f9000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f934d6f0000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f934d4d3000)
我必须对 g++ 调用进行哪些更改才能将所有 boost 依赖项打包到 .so 文件中?
【问题讨论】:
标签: c++ boost linker dependencies