【发布时间】:2017-05-06 13:53:01
【问题描述】:
我想用 GCC/G++ 构建静态程序,没有共享依赖项。但我不知道该怎么做。
在 Netbeans IDE 中使用以下命令,我可以使用共享依赖项进行构建,但在某些操作系统中找不到该库(我不想在新系统上安装)
-Wl,--dynamic-linker=/usr/lib/libexpat.so.1
【问题讨论】:
-
你不能静态链接
.so库,你需要得到一个.a -
你的“下面的命令”没有做你认为它做的事情;它应该生成一个无法运行的可执行文件根本(我希望它在启动时崩溃)
-
@Barmar 感谢您的快速回复。我在 '/usr/lib/libexpat.a' 路径中找到了 libexpat 库,现在用 gcc/g++ 编译和链接 .a 的开关是什么?
-
@MehdiH。
-L的参数是目录,而不是文件名。当您使用-lexpat时,这些选项会添加到它搜索库的目录中 -
对于
/usr/lib中的库,您不需要使用-L,它位于默认库搜索路径中。因此,只需与-lexpat进行静态链接即可。