编译器

There are 1 entries for the tag 编译器

MinGW生成C可执行文件,运行报dll丢失

MitchellChu 2013-12-30 其他技术 Unix & Linux 编程语言

MinGW下使用g++.exe/gcc.exe编译出来的可执行文件,在运行时报libgcc_s_dw2-1.dll丢失的错: 无法启动此程序,因为计算机中丢失libgcc_s_dw2-1.dll。尝试重新安装该程序已解决此问题。 这个问题的原因是因为gcc编译器在默认的情况下使用的不是静态关联,所以在执行文件下没有找到该DLL就会导致这个报错。最简单的解决方法是将此DLL直接放入到可执行文件的同目录下即可,当然,还有可能会报: 无法启动此程序,因为计算机中丢失libstdc++-6.dll。尝试重新安装该程序已解决此问题。 这种情况下,只能再次把丢失的DLL拷贝到可执行文件的目录下,这样问题就能得到解决。 虽然上面的方法能够解决这个问题,但每次新项目之后都需要将这些文件放入到部署文件夹。如果对这种方式不太满意,你可以考虑在编译的时候加入:-static-libgcc -static-libstdc++ g++.exe source_files -o target_file -static-libgcc -static-libstdc++ 这将直接告诉编译器,使用静态链接来处理关联。编译之后,就不需要再次将DLL文件拷贝到可执行文件的目录中。 如果你是使用CMake来编译,也可以在CMakeLists.txt中添加这两个参数: project(projectName) cmake_minimum_required(VERSION 2.8) #...... ### 添加下面这段代码 if(WIN32) set(CMAKE_CXX_FLAGS "-static-libgcc -static-libstdc++") endif(WIN32) ### 添加结束 #..... #其他代码 这样在编译的时候,就能自动添加这两个参数到编译器上。

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。