当前位置: 技术问答>linux和unix
g++ 编译选项的问题。。。。
来源: 互联网 发布时间:2017-01-09
本文导语: 我在写SO模块的时候,有没有什么编译选项可以把调用的 .a文件一起编译进去。。。 比如说 我的so 使用了 lib.c.so 和 libstdc++.so 。。。我看了下 libstdc++ 有静态库文件,可以加上 -static 但是我不可能每次有需...
我在写SO模块的时候,有没有什么编译选项可以把调用的 .a文件一起编译进去。。。
比如说 我的so 使用了 lib.c.so 和 libstdc++.so 。。。我看了下 libstdc++ 有静态库文件,可以加上 -static
但是我不可能每次有需要的库都自己写加上把,可以不可以有什么编译选项自动加载所有使用到的.a
而不用自己一个一个去写makefile的。。。
比如说 我的so 使用了 lib.c.so 和 libstdc++.so 。。。我看了下 libstdc++ 有静态库文件,可以加上 -static
但是我不可能每次有需要的库都自己写加上把,可以不可以有什么编译选项自动加载所有使用到的.a
而不用自己一个一个去写makefile的。。。
|
难道你不可以加入-static-libstdc++ 吗?
gcc4.5以上有效
gcc4.5以上有效
|
不能
DSO和DLL不同,允许链接有未定义符号,这部分在运行时处理
DSO和DLL不同,允许链接有未定义符号,这部分在运行时处理
|
链接阶段的ar才干这个事吧?
|
ar不是链接阶段的哦,就是个打包工具……
|
是ld,不是ar。
|
你得编译几个程序啊, -static -lxxx 只在链接时才用一次, 谁告诉你编译也得用了?
|
这个做不到,编译器只能做到指定的目录列表中去查找文件,不能通过符号来找到对应的库;