LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1306|回复: 13

怎么把一个程序编译成静态的版本?

[复制链接]
发表于 2006-8-6 15:55:27 | 显示全部楼层 |阅读模式
怎么把一个程序编译成静态的版本?
不依赖于别的动态连接库文件
发表于 2006-8-6 16:46:42 | 显示全部楼层
try: -static
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-7 12:20:47 | 显示全部楼层
这个程序的configure脚本没提供这个参数阿
回复 支持 反对

使用道具 举报

发表于 2006-8-7 13:01:58 | 显示全部楼层
什麽程序?

把 -static 加到 Makefile 里的 CFLAGS 或 CXXFLAGS,又或 export CFLAGS 之类。。。行吗?
回复 支持 反对

使用道具 举报

发表于 2006-8-7 14:47:28 | 显示全部楼层
五花八门,要看软件自己提供了什么方法。。

./configure --enable-static --disable-shared 很多都可以这样的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-8 00:01:48 | 显示全部楼层
fontforge
Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-static=PKGS  build static libraries default=no
  --enable-shared=PKGS  build shared libraries default=yes
  --enable-static=PKGS  build static libraries default=yes
  --enable-shared=PKGS  build shared libraries default=no
  --enable-fast-install=PKGS  optimize for fast installation default=yes
  --disable-libtool-lock  avoid locking (might break parallel builds)

静态共享默认都是yes,不懂,所以才来求教
回复 支持 反对

使用道具 举报

发表于 2006-8-8 04:11:44 | 显示全部楼层
兄弟是打算编译 wine 吗?

fontforge 应该无需用 static build,今天我编译 wine-0.9.18 之前编译过 fontforge_full-20060715.tar.bz2,没有问题,wine-0.9.18 同样顺利

fontforge 在 configure 的时候要指定 freetype 的源码路径才行,我是參考这里的方法来完成的

http://linuxfromscratch.org/pipe ... 06-June/060395.html

希望对你有用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-8 15:19:58 | 显示全部楼层
不是,我是想在cygwin里编译出一个不依赖cygwin里*.dll动态连接库的fontforge
ff里的--enable-shared和--enable-static只是针对编译时依赖的(共享、静态)库文件,不是指最终编译出的程序是否是静态或者动态的。好像并没提供编译成静态之类的参数,但是应该还有别的办法,所以来问问

PS:跟LFS无关阿,只是借一下贵宝地用用,呵呵
回复 支持 反对

使用道具 举报

发表于 2006-8-8 16:43:49 | 显示全部楼层
cygwin 没有提供静态库,没法静态链接。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-10 12:36:26 | 显示全部楼层
LDFLAGS="-all-static" 或者gcc -static 可行否?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表