#c #clion
Вопрос:
Я новичок в использовании CLion и пытаюсь создать свой первый проект. У меня есть два исходных файла (main.cpp и Hero.cpp) и заголовок для Hero.cpp. В верхней части Hero.cpp там есть желтый баннер с надписью «Этот файл не принадлежит какой-либо цели проекта; функции анализа кода могут работать неправильно». Я почти уверен, что нет никаких ошибок в отношении синтаксиса или логики программы. Тем не менее, когда я пытаюсь запустить свой код, я получаю:
[ 50%] Building CXX object CMakeFiles/untitled.dir/main.cpp.o
[100%] Linking CXX executable untitled
Undefined symbols for architecture x86_64:
"Hero::GetStrength()", referenced from:
PrintHero(Hero) in main.cpp.o
"Hero::GetHitpoints()", referenced from:
PrintHero(Hero) in main.cpp.o
"Hero::GetName()", referenced from:
PrintHero(Hero) in main.cpp.o
"Hero::Hero(std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >, int, int)", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [untitled] Error 1
make[2]: *** [CMakeFiles/untitled.dir/all] Error 2
make[1]: *** [CMakeFiles/untitled.dir/rule] Error 2
make: *** [untitled] Error 2
Может ли кто-нибудь помочь мне разобраться в этой проблеме? Заранее спасибо!
Комментарии:
1. Вы добавили
Hero.cpp
к цели вCMakeLists.txt
? Если нет, он не будет скомпилирован или связан в исполняемый файл. Вы, вероятно, хотите обновитьadd_executable
строку по умолчанию для чтенияadd_executable(YourProject main.cpp Hero.cpp)
или подобную.2. Немного полезного чтения, если вы только начинаете работать с CMake: Введение в современный CMake
3. @Брайан, Спасибо! Это сделало свое дело. Спасибо также за рекомендацию.