Я пытаюсь скомпилировать простое привет мировая функция в C++. После того, как я скомпилирую его, я выполняю его и получаю "Отказ сегментации". Кто-то может пролить некоторый свет на это?
Я компилирую это из командной строки Linux с помощью следующей команды:
g ++ hello.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
return 0;
}
Сама программа выглядит нормально. Я бы догадался, что в вашей компиляции есть какой-то quirk, что вызывает SegFault.
Ваша лучшая ставка - это запустить это в отладчике (GDB) - это скажет вам, где он сбивается, что поможет вам выяснить, в чем проблема.
Чтобы сделать это, компилируйте, как это:
g++ -g -o hello hello.cpp
затем запустить GDB:
gdb hello
и в типе бывшего GDB
run
для запуска программы. Когда это вылетает, введите
bt
, который даст вам укладку, который будет - надеюсь - помочь вам выяснить, что происходит.
Нет ничего плохого в этом коде, поэтому вам придется расследовать сначала ваш компилятор, затем ваше оборудование.
Это может быть лодошком, но попытаться изменить INT MAIN ()
- INT MAIN (INT ARGC, CHAR * ARGV [])
Скомпилируйте это
G ++ -BSTatic -static Hello.cpp
, а затем запустить ./a.out
If Это не SEG неисправность, ld_library_path - ваш виновник.