Не удалось запустить код на CLion на моем Mac. Я получаю сообщение об ошибке «Этот файл не принадлежит ни одному целевому проекту».

#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. @Брайан, Спасибо! Это сделало свое дело. Спасибо также за рекомендацию.