我在Code :: Blocks中创建了一个小文本冒险游戏,它只包含了iostream和string这两个库。当我编译并运行它在程序中完美工作但当我尝试执行.exe文件本身时,我得到一个错误,显示在下图中
http://i1273.photobucket.com/albums/y414/blueblur112198/error_zps558a6867.png
我做了一堆谷歌搜索答案,但没有一个工作。我也搜索了这个网站,这里的答案都没有。所以我决定在这里开帐户并询问我的具体问题。
我的编译器是GNU GCC,我的开发平台是Windows 7 64位。
答案 0 :(得分:0)
由于您同时使用iostream
和string
,因此可执行文件需要链接到标准库,标准库包含string::begin()
和{{1}的定义}}
如果标准库是作为共享库构建的(例如,如果您是在Windows下的DLL),则需要找到它以便程序正确运行。你可以在Code :: Blocks中执行它的原因是IDE肯定会在目录列表中包含库的路径来查找动态对象,但是当你自己运行可执行文件时,系统找不到DLL。
解决方案是在您的可执行文件夹中包含string::size()
(繁琐)或将其所在的路径添加到libgcc_s_dw2-1.dll
环境变量。