Top.Mail.Ru
Ответы

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

Зравствуйте.
Пишу небольшую программу на С++. Использую блокнот и компилятор "MinGW".
Необходимо разбить программу на модули. Например, чтобы в файле "func.cpp" была функция "int Get()", а другие модули могли ее вызывать.
Мой код
main.cpp : https://pastebin.com/MqbF1KLw
func.cpp : https://pastebin.com/PrENq409
func.h : https://pastebin.com/HZfniDa1
Если компилировать через командную строку windows:

gcc main.cpp -lgdi32 -o test.exe
то выдается ошибка:
C:\Users\RAIN\AppData\Local\Temp\ccMiHcLS.o:main.cpp:(.text+0x3a): undefined reference to `Get()'
collect2.exe: error: ld returned 1 exit status

А если компилировать через среду CodeBlocks (это такое IDE для С++). Оно использует "MinGW" для компиляции. То там эта программа нормально компилируется. Нужно только в настройках линкера указать параметр -lgdi32. Потом ехе-шник можно запустить отдельно от IDE - тоже работает.
С языком знаком плохо.
Скажите, почему эта программа не компилируется из командной строки? И как заставить ее компилироваться?
Откуда вообще берется эта ошибка, если в IDE всё работает?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Просветленный
6лет

компилировать всё нужно, а не только main
gcc -c main.cpp
gcc -c func.cpp
gcc -o main.exe -lgdi32 main.o func.o