windows 下 g++编译.cpp 文件,执行生成的.exe 文件,显示无法定位程序输入点于动态链接库

2022-03-11 21:57:49 +08:00
 Keen06

情况为在代码中使用 STL 库中的 vector 模板时出错,编译没报错,执行可执行文件时报错

源代码:

#include<iostream>
#include<vector>
using namespace std;

int main(){

    vector<int> a;
    int cap = a.capacity();
    cout<<cap<<endl;
    for(int i = 0; i<=cap;i++){
        a.push_back(1);
    }
    cout<<a.capacity()<<endl;

    return 0;
}

出错信息: 无法定位程序输入点_gxx_personality_sj0 于动态链接库...\a.exe(可执行文件所在目录)

不知道哪里出错了,不使用 vector 模板可以正常运行,该怎么解决呢,谢谢大家了!

2212 次点击
所在节点    C++
8 条回复
proxytoworld
2022-03-11 22:45:03 +08:00
实测没问题
Keen06
2022-03-11 22:49:40 +08:00
@proxytoworld 不是代码问题,感觉是编译器的链接方式问题,具体不太清楚,直接强制静态链接暴力解决。。。。
Keen06
2022-03-11 22:53:00 +08:00
@proxytoworld 感谢回复哈哈哈
pursuer
2022-03-11 22:53:25 +08:00
估计是 Windows 找到版本不一致的 g++运行时了。。详细的可能要查 PATH 变量了,或者调试器调一下
12101111
2022-03-11 22:55:33 +08:00
你要把 mingw 的运行时库复制到 exe 所在的目录
darknoll
2022-03-12 07:30:15 +08:00
设置环境变量
Keen06
2022-03-12 10:19:56 +08:00
多谢大家回复了
tinkerer
2022-03-12 22:58:59 +08:00
windows 下尽量用 msvc

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/839769

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX