У меня есть программа на C ++, которая отлично компилируется и работает в блоках кода. Однако, когда я пытаюсь скомпилировать его из терминала, используя:
gcc -g main.cpp -o Main
, я получаю много неопределенных ссылок:
И это снимок экрана программы, работающей в кодовых блоках:
Вы должны компилировать, используя g++
, gcc
компилирует программы на Си. Чтобы установить все необходимые пакеты из g++
, выполните sudo apt-get install build-essential
на терминале, а затем, чтобы скомпилировать вашу программу, выполните g++ -g main.cpp -o Main
.
g++
для программ на C ++! Это потому, что:
gcc
- это GNU C & nbsp; & nbsp; & NBSP; & NBSP; & NBSP; Компилятор
g++
является компилятором GNU C ++
Таким образом, они являются разными компиляторами, и поэтому они являются разными пакетами. Основные отличия:
gcc
будут компилировать: *.c
/ *.cpp
файлы как C и C ++ соответственно. g++
скомпилируют: *.c
/ *.cpp
файлы, но все они будут обрабатываться как файлы C ++. g++
для связывания объектных файлов, он автоматически связывается в библиотеках std C ++ (gcc
этого не делает). gcc
компиляция файлов C имеет меньше предопределенных макросов. gcc
, компилирующие *.cpp
и g++
, компилирующие файлы *.c
/ *.cpp
, имеют несколько дополнительных макросов. Источник: В чем разница между g ++ и gcc?
Я понял проблему. Я не нашел конкретного решения, но я нашел обходной путь. Видимо, классы не связаны между собой. Поэтому я поместил все классы в основной файл, и он работал отлично!