用 MinGW 编译的程序,运行时提示“没有找到 libgcc_s_dw2-1.dll”,要怎么解决?

js___ 2011-04-26 12:49:39
MinGW 是从官网下载的。

编译程序使用的命令是:configure && make

把这些 DLL 文件复制到 exe 所在目录,程序是可以运行的。

请问如何不依赖这些 DLL 文件?
...全文
5806 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
js___ 2011-04-26
  • 打赏
  • 举报
回复
另一个解决办法:

下载 http://code.google.com/p/qp-gcc/downloads/detail?name=mingw-static-4.4.5-all.7z,解压到 MinGW 目录下即可。
js___ 2011-04-26
  • 打赏
  • 举报
回复
我是想把 Linux 的程序编译到 windows 平台上使用。我不懂编程,所以这些问题都不懂。

执行 gcc main.cc -static 后,提示:

main.cc: In function 'void<unnamed>::show_version()':
main.cc:155:41: error: 'PROGVERSION' was not declared in this scope
main.cc: In function 'int main(int, const char* const*)':
main.cc:345:33: error: 'PROGVERSION' was not declared in this scope

又如何修改 Makefile 呢?
贪食蛇男 2011-04-26
  • 打赏
  • 举报
回复
我没用过 configure生成 Makefile,一般自己写,简单的用自己写的脚本生成 Makefile。
不知道TDM有没有configure。
js___ 2011-04-26
  • 打赏
  • 举报
回复
我刚才下载了 TDM's GCC,然后执行了:

MinGW 里面的 configure 命令
TDM's GCC 里的 mingw32-make.exe

这样编译出来的程序不用依赖 DLL 文件了。

TDM's GCC 里面没有 configure 命令吗?
贪食蛇男 2011-04-26
  • 打赏
  • 举报
回复
ld的选项。
gcc(g++)最终也调用了ld
gcc -c hello.c
gcc hello.o -static
使用make的话,修改下Makefile就OK
js___ 2011-04-26
  • 打赏
  • 举报
回复
请问 -static 是哪个命令的选项?我编译程序时使用的命令是:configure && make
贪食蛇男 2011-04-26
  • 打赏
  • 举报
回复
使用静态链接,把C/C++运行库静态编译进可执行文件里。
请在链接时使用 -static选项。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧