如何静态链接使用./configure的Linux软件?
我想编译静态文件,这样我就可以将编译后的二进制文件复制到OmniOS服务器上,我不希望在那里安装gcc。我更愿意从存储库中安装支持SSl的NRPE,但这并不存在,所以我想自己编译它。但是,如何静态链接使用./configure的Linux软件?,linux,gcc,configure,static-linking,omnios,Linux,Gcc,Configure,Static Linking,Omnios,我想编译静态文件,这样我就可以将编译后的二进制文件复制到OmniOS服务器上,我不希望在那里安装gcc。我更愿意从存储库中安装支持SSl的NRPE,但这并不存在,所以我想自己编译它。但是,/configure脚本不包含它所包含的静态选项 ~/nrpe-2.15# ./configure --help | grep static ~/nrpe-2.15# ./configure --help | grep share --datadir=DIR read-only archi
/configure
脚本不包含它所包含的静态选项
~/nrpe-2.15# ./configure --help | grep static
~/nrpe-2.15# ./configure --help | grep share
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
问题
如何编译静态使用配置的程序 试试这个:
./configure LDFLAGS="-static"
对于来自谷歌的人,我发现如果你有libtool
部分构建,你需要:
/configure CFLAGS=“-static”…
make LDFLAGS=“-all static”
您可以看到-all static
使用libtool--help--mode=link
这个包似乎不支持静态链接…可能与的重复,但我得到了很多警告:在静态链接的应用程序中使用'xxx'需要在运行时使用glibc版本中用于链接的共享库
是,没错,有些东西在运行时会被dlopen
d。我认为DNS查找需要这个。这并不理想-(如果您试图静态链接到GLIMC,那么无论如何不能运行在OMNIOS上,这就要求ILUMOS LIGB-GLIMC只与Linux内核一起工作。我得到<代码>配置:错误:C++编译器在运行此标志时不能创建可执行文件< /代码>。ER问题是使用C++的。这里重要的是,代码> > LDFLAG= =“-static” >只给出给<代码>制作< /代码>,并且不设置在 > /Optase时间,否则会破坏配置脚本(因为只有 LbTooe< /Cult>包装器接受它,编译器如<代码> GCC 本身不这样做).还有一个讨厌自动工具的原因:(