【发布时间】:2016-10-16 11:46:07
【问题描述】:
我正在尝试从“test.c”和test.exp 文件构建一个共享库lib_test.so。这个lib_test.so 文件将用作另一个应用程序的扩展。
应用程序文档通过以下命令直接指定生成 tle lib_test.so 文件:
`gcc -q64 -o lib_test.so test.c -bM:Sre -bE:test.exp -bnoentry`
但我的要求是分两次构建库:
- 使用
gcc命令编译生成test.o文件。 - 使用
ld命令生成库lib_test.so的链接。
我尝试如下:
- 执行编译步骤如下:
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 文件。
我正在使用带有最新 GCC 的 Ubuntu 16.04 LTS 64 位
您能否建议将流程分为两遍的正确方法...
感谢和问候。
【问题讨论】:
-
“它没有生成正确的
lib_test.so文件”是什么意思?你有构建错误吗?加载库时出错?还有什么?请详细说明。 -
当我一次构建
lib_test.so时,我得到了 12619 字节大小的 so 文件,并且应用程序可以很好地加载这个库,但是在使用两次构建时,输出lib_test.so文件是 11816 字节并且应用程序显示loading extension failedforlib_test.so错误。
标签: c linux gcc shared-libraries xlc