c++ - Mingw 和 c++ 向量
问题描述
我正在用 C++ 编写一个简单的小程序来测试向量。以下代码运行良好,并将 hello 输出到 cmd。我遵循的步骤是: g++ filename.cpp to compile .\a.exe to run
#include <iostream>
#include <vector>
using namespace std;
int main()
{
cout<<"hello";
return 0;
}
但是,当我声明一个向量时,hello 没有显示,程序似乎根本不工作。
#include <iostream>
#include <vector>
using namespace std;
vector<int> a;
int main()
{
cout<<"hello";
return 0;
}
编译时我没有收到任何错误消息。但是当我在 cmd 之外运行时,我确实收到了一条关于没有入口点的消息。
在动态链接库中找不到过程入口点_ZNKSt9baisc_ioslcSt11char_traitslcEEcvbEv
我搜索了谷歌和堆栈溢出,但找不到解决我的问题的方法。
对于稍后会阅读此内容的任何人,我在环境路径变量中安装并定义了一个名为 gtk 的东西,它似乎与 MinGW 发生冲突。一切都通过写作顺利进行:
g++ ex1.cpp -static-libgcc -static -static-libstdc++
解决方案
_ZNKSt9baisc_ioslcSt11char_traitslcEEcvbEv
该问题可能是由于 Windows 在尝试执行您的程序时未找到包含程序尝试访问的函数(此处)的 DLL 。
有几个解决方案:
- 与 C++ 库 (--static-libstdc++) 的静态链接(这会将 C++ 库直接链接到您的可执行文件中(这可能会使您的程序更大))
- 将 libstdc++ dll 放入您的程序文件夹中(您应该能够在编译器安装文件夹中的某个位置找到它)
- 将 libstdc++ dll 的路径添加到全局 PATH 变量(如果您想了解有关添加到 PATH 的更多信息,请参阅此处),以便为您计算机上运行的任何可执行文件找到该 dll
做任何这些应该可以解决您的问题。
推荐阅读
- ajax - 如何通过从 laravel 6.x 中的数据库中获取纬度和经度值来获取谷歌地图位置
- python - Cython“ModuleNotFoundError”,即使它是在构建 docker 映像时通过 requirements.txt 安装的
- css - 是否有可能两个在单个 div 上结合 css 中的两个线性渐变
- python - 如何使用 Ajax 更新评论计数
- amazon-cloudformation - AWS Backupvault SNS 通知
- python-3.x - Google App Engine:Flask 应用程序上的 cv2 libSM.so.6 错误
- java - Spring Security 302 重定向
- php - php codeigniter中的验证码显示致命错误
- java - 为什么 Java 不支持在方法签名中添加 `throws`?
- reactjs - 忽略eslint反应中的文件夹