在用MinGW编译时,我必须在MinGW bin目录下复制特定的dll文件,然后才能运行MinGW(即使使用"-static“和/或”-static++“)。我该怎么改变呢?是否有我必须使用的MinGW的特殊版本?最终,我希望能够只使用目录中的exe (并且没有设置windows环境变量)来运行程序。这些档案是:
以下是step's I休整的完整列表:
编辑:我的命令行是:
g++.exe -Wall -fexceptions -static -static-libgcc -static-libstdc++ -g -static-libgcc -static-libstdc++ -L. -c "C:\Users\______\Desktop\Hello World\main.cpp" -o obj\Debug\main.o
g++.exe -o "bin\Debug\Hello World.exe" obj\Debug\main.o与上面提到的所有dll文件一起使用。为了安全起见,代码是:
// main.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}发布于 2013-08-09 01:39:05
你的命令错了!
转到main.cpp文件所在的目录,然后尝试以下操作。
g++.exe -Wall -c -g main.cpp -o obj\Debug\main.o
g++.exe -static -static-libgcc -static-libstdc++ -o "bin\Debug\Hello World.exe" obj\Debug\main.o然后,您将不再需要复制‘ll(为您的Hello程序)。
其他注释:
MinGW安装说明建议设置
c:\minGW;c:\MinGW\bin;到PATH环境变量。
正常情况下
-static -static-libgcc -static-libstdc++链接器选项应该可以工作(同时尝试所有三个选项)。但对libwinpthread-1.dll来说却不是。
另外,在重新编译之前尝试使用clean。
没有“-静态-什么”命令。
只有标准库libgcc和libstdc++可以设置为静态链接。
对于其他库,首先使用"-static“进行静态链接,然后列出包含单独命令的库,即"-lpthread”。
Cmake用户应该尝试添加:
set(CMAKE_CXX_STANDARD_LIBRARIES "-static-libgcc -static-libstdc++ -lwsock32 -lws2_32 ${CMAKE_CXX_STANDARD_LIBRARIES}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive")发布于 2016-05-22 05:51:52
如果使用异常,-static-libgcc可能是个坏主意。链接选项文档说
有几种情况下,应用程序应该使用共享的libgcc而不是静态版本。其中最常见的情况是,应用程序希望在不同的共享库之间抛出和捕获异常。在这种情况下,每个库以及应用程序本身都应该使用共享的libgcc。
发布于 2021-01-09 17:22:28
上面对答案的注释包含完整的解决方案,因此我只想添加CodeBlocks透视图。我用Windows7 x64和MinGW-W648.1.0‘’i 686-posix-侏儒‘验证了它。
这解决了行动部的问题
测试
还可以从资源管理器窗口启动它,并确认它也不请求DLL。
注意:在我的Win7x64系统上,当从浏览器启动HelloWorld.exe时,添加"-lwinpthread“行会导致CodeBlocks忽略”Projects/Properties/Tab_BuildTarget/“执行结束时暂停”HelloWorld.exe“中的设置。
请注意,如果您使用而不是,则可能不会使用带有“posix”线程模型的MinGW-W64编译器。这两个代码块MinGW-W64捆绑安装包都使用这样的版本。对于CB20.03,从MinGW-W64下载页面下载的相关内容如下
例如,如果我直接使用Codeblock设置安装编译器,并选择了32位编译器包‘i 686-Win32-侏儒’,那么只有前两个DLL会丢失。在这种情况下,修补程序只能将链接器选项设置为
-static-libgcc
-static-strc++https://stackoverflow.com/questions/18138635
复制相似问题