我正在尝试用c ++编译一个简单的hello world函数。编译之后,我运行它并得到“Segmentation fault”。有人可以对此有所了解吗?
我正在使用以下命令从Linux命令行编译它:
g ++ hello.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
答案 0 :(得分:6)
程序本身看起来不错。我猜你的编译环境中有一些怪癖导致了段错误。
你最好的选择是在调试器(gdb)中运行它 - 它将告诉你崩溃的位置,这将帮助你找出问题所在。
为此,请按以下方式编译:
g++ -g -o hello hello.cpp
然后运行gdb:
gdb hello
并在gdb提示符下输入
run
运行程序。当它崩溃时,输入
bt
将为您提供一个堆栈跟踪,希望能帮助您找出正在发生的事情。
答案 1 :(得分:1)
该代码没有任何问题,因此您必须首先调查您的编译器,然后调查您的硬件。
答案 2 :(得分:1)
像这样编译
g ++ -Bstatic -static hello.cpp
然后运行./a.out
如果这不是故障,LD_LIBRARY_PATH是你的罪魁祸首。
答案 3 :(得分:0)
这可能是一个长镜头,但请尝试将int main()
更改为int main(int argc, char *argv[])