问题描述
||
我需要构建一个小项目C ++(它具有win32代码)。它已经有其Makefile。有人告诉我使用MinGW。我以前从未用过。我下载并安装了最新的MinGW安装程序。
然后,我打开MinGW外壳并做了
make
。 exe文件已创建。但是当我尝试运行它时,我得到了libgcc_s_dw2-1.dll
的缺失!为什么会出现此错误? exe不应该是自包含的并且可以在任何地方运行吗?
更新
以下是来自Makefile的更多信息:
CC = g++
CcopTIONS=-DWINDOWS -DFORCEINLINE -DMINGW -DSRTP_SUPPORT -D__EXPORT= -D_WIN32_WINNT=0x0501 -DNOMVS
setup.exe: setup.o common.o
$(CC) -ggdb -g -O0 -o $@ setup.o common.o -mno-cygwin -mwindows -lwsock32 -lws2_32 -lwinmm -lgdi32 -lcomctl32 -lmapi32 -lVfw32
解决方法
exe是否应自包含取决于您如何构建它。我们需要查看已执行的命令,或发布makefile。但是该DLL似乎不是当前版本的MinGW的一部分。另外,请说明您实际上是在cygwin下执行此操作,还是误添加了标签。
编辑:有点谷歌搜索似乎与可怕的“官方” MinGW安装有关。删除它,然后从http://tdm-gcc.tdragon.net下载Twilight Dragon版本,然后完全重建。无论如何,“官方”版本是cr * p-我不知道为什么有人使用它。
, 如果要使用MinGW的独立应用程序,则应在链接选项中添加
-static
。
附带说明一下,如果您要制作Win32应用程序,请将-mwindows
选项添加到C ++编译器,这样它就不会与主窗口一起打开控制台。