gpt4 book ai didi

c++ - 使用vector导致的Segment Fault

转载 作者:搜寻专家 更新时间:2023-10-31 01:54:58 25 4
gpt4 key购买 nike

我正在尝试使用 C++ 而不是 C 为我的基于 MIPS 的嵌入式设备构建我的应用程序。首先,我有一个链接问题,你可以看到 here .此问题已解决,我可以成功构建我的应用程序。现在,我想使用 std::vector类(class)。我的代码是:

#include <vector>
using namespace std;

int main() {
vector<char> v;
v.push_back('s');

return 0;
}

vector<char> v;执行的行,Segment Fault消息出现在屏幕上。对于更多测试,我确实测试了 new运营商,它工作正常。我正在使用 mipsel-elf-g++为了构建我的应用程序。

怎么了?

最佳答案

如评论中所述,您的编译器和/或其运行时库已损坏。 (您可以排除操作系统,因为“elf”目标意味着您没有在目标上运行操作系统,如果它不存在,它就无法被破坏。)

与其尝试调试 Cygwin 的 mipsel-elf-gcc 包,它可能很旧且未经过充分测试,我建议只使用不同的编译器。特别是,GCC 编译器和相关 C 和 C++ 库的 Mentor Graphics“Sourcery CodeBench Lite Edition”版本可从 http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ 免费下载。 - 它基本上应该只是作为您正在使用的 Cygwin 编译器的直接替代品(包括正确使用 Cygwin 路径,即使它名义上是作为“普通 Windows”编译器构建的),不同之处在于它已经过测试并经过验证可以正常工作。

[免责声明:我在 Mentor Graphics 工作,所以我不能说我没有偏见——但我们确实投入了大量工作来使这个编译器工作,并且 MIPS 与我们签订契约(Contract)以使其可供世界是免费的,所以我们有动力确保它正常工作。此外,如果您熟悉 CodeSourcery“Sourcery G++”编译器,“Sourcery CodeBench”是它们的新名称,因为 CodeSourcery 是 Mentor Graphics 的一部分。]

关于c++ - 使用vector导致的Segment Fault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com