Почему я получаю отказ сегментации?

Я пытаюсь скомпилировать простое привет мировая функция в C++. После того, как я скомпилирую его, я выполняю его и получаю "Отказ сегментации". Кто-то может пролить некоторый свет на это?

Я компилирую это из командной строки Linux с помощью следующей команды:

g ++ hello.cpp

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}
5
задан Lazer 25 January 2010 в 11:24
поделиться

4 ответа

Сама программа выглядит нормально. Я бы догадался, что в вашей компиляции есть какой-то quirk, что вызывает SegFault.

Ваша лучшая ставка - это запустить это в отладчике (GDB) - это скажет вам, где он сбивается, что поможет вам выяснить, в чем проблема.

Чтобы сделать это, компилируйте, как это:

g++ -g -o hello hello.cpp

затем запустить GDB:

gdb hello

и в типе бывшего GDB

run

для запуска программы. Когда это вылетает, введите

bt

, который даст вам укладку, который будет - надеюсь - помочь вам выяснить, что происходит.

6
ответ дан 14 December 2019 в 04:38
поделиться

Нет ничего плохого в этом коде, поэтому вам придется расследовать сначала ваш компилятор, затем ваше оборудование.

1
ответ дан 14 December 2019 в 04:38
поделиться

Это может быть лодошком, но попытаться изменить INT MAIN () - INT MAIN (INT ARGC, CHAR * ARGV [])

0
ответ дан 14 December 2019 в 04:38
поделиться

Скомпилируйте это

G ++ -BSTatic -static Hello.cpp

, а затем запустить ./a.out

If Это не SEG неисправность, ld_library_path - ваш виновник.

1
ответ дан 14 December 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: