我需要构建一个小项目C ++(它有win32代码)。它已经有了Makefile。有人告诉我使用MinGW。我以前从未使用过它。我下载并安装了最新的MinGW安装程序。
然后,我打开了MinGW shell并做了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
答案 0 :(得分:2)
exe是否应该是自包含的取决于你是如何构建它的。我们需要查看已执行的命令,或发布makefile。但该DLL似乎不是当前版本的MinGW的一部分。另外,请澄清您是否在cygwin下实际执行此操作,或者您是否错误地添加了标记。
编辑:谷歌搜索似乎与可怕的“官方”MinGW安装有关。删除它,从http://tdm-gcc.tdragon.net下载Twilight Dragon版本,然后完全重建。无论如何,“官方”版本是cr * p - 我不知道为什么有人使用它。
答案 1 :(得分:0)
如果你想做的是使用MinGW的独立应用程序,你应该将-static
添加到链接选项。
另外,如果您正在创建Win32应用程序,请将-mwindows
选项添加到C ++编译器中,这样它就不会与主窗口一起打开控制台。