我试图从'test.c'& test.exp
文件构建共享库lib_test.so
。这lib_test.so
文件将用作另一个应用程序的扩展。 应用程序文档通过以下命令指定代TLE lib_test.so
文件的直接在单次通过:拆分生成一个共享对象库(.so)文件,而不是一个
`gcc -q64 -o lib_test.so test.c -bM:Sre -bE:test.exp -bnoentry`
但我的要求是建立在两次通过库:
- 编译以生成
test.o
文件使用gcc
命令。 - 链接生成库
lib_test.so
使用ld
命令。
我尝试这样做如下:
- 执行的编译步骤如下:
gcc -q64 -c -o test.o test.c
。 - 创建
lib_test.so
如下:ld -bM:Sre -bE:test.exp -bnoentry -o lib_test.so test.o
但它不是产生一个适当的lib_test.so
文件。
我使用Ubuntu 16.04 LTS 64位与最新的GCC
可否请您建议的过程分成两个传递正确的方法...
感谢&问候。
你的意思是“它没有生成正确的'lib_test.so'文件”?你有构建错误吗?加载库时出错?还有别的吗?请详细说明。 –
当我一次构建'lib_test.so'时,我得到12619字节大小的文件,应用程序加载该库很好,但在构建两次使用时,输出'lib_test.so'文件为11816字节,应用程序显示'loading extension failed' for'lib_test.so'错误。 – Anirban