MinGW 中如何生成独立于MinGW环境…
来源:互联网 发布:php多用户博客系统 编辑:程序博客网 时间:2024/05/22 01:26
在mingw环境中,如果单纯通过[gcc|g++|gfortran] src -oexe的形式生成可执行文件的话,该文件是需要mingw环境中的libgcc和libstdc++等dll文件的。正是因为把这些公用文件都剔除了,所以生成的可执行文件非常的小。但是如果我们想让可执行文件随处可以执行,不需要dll文件的支持的话该怎么办呢?很简单,把这些dll文件静态化。
对于C++ 文件需要这种形式:
g++ -static-libgcc -static-libstdc++ -o$(FileDir)\$(FileNameNoExt) $(FilePath)
注意,是两个dll文件。需要补充说明的是,链接上第一个libgcc可执行文件体积变化不大。但是在链接上第二个文件体积增大1250k左右。加入-s 选项,就会体积减小
对于C文件 需要:
gcc -static-libgcc -o $(FileDir)\$(FileNameNoExt)$(FilePath)
注意,即使此时用 g++ 并带上-static-libstdc++它也不会链接libstdc++这个库,因为并不需要。gcc只有在需要的时候才链接。
对于Fortran文件 :
gcc -static-libgcc -static-libgfortran -o$(FileDir)\$(FileNameNoExt)
Alternative
后面加-static 选项即可。即:
g++ -static -o $(FileDir)\$(FileNameNoExt) $(FilePath)
gcc -static -o $(FileDir)\$(FileNameNoExt) $(FilePath)
gfortran -static -o $(FileDir)\$(FileNameNoExt) $(FilePath)
Final
考虑到链接库时,是需要就连接,不需要不连接的原则。上面3条可以统一为:
gcc -static -o $(FileDir)\$(FileNameNoExt) $(FilePath) -lstdc++-lgfortran
- MinGW 中如何生成独立于MinGW环境…
- 如何添加一个 mingw gcc 编译的可…
- MinGW
- mingw
- mingw
- mingw
- MinGW
- mingw
- MinGW
- MinGW
- mingw
- MinGW
- MinGW
- mingw
- MinGW
- MinGw
- MinGW
- minGW
- Spring boot给接口返回添加request、response log
- KDE 802.1x MD5认证
- Linux中查看进程的多线程
- 高德地图-历史轨迹回放
- 1047. Student List for Course (25)
- MinGW 中如何生成独立于MinGW环境…
- 阿里大于短信验证码简单使用
- 使用firework切图
- 正则匹配的test方法值一直变化的原因讲解及解决方法
- texlive包的添加与更新
- Linux信号捕捉
- WinEdt 简单破解
- 系统了解UTF/Unicode
- 关于linux开机Fast TSC calibratio…