Я новичок ie в cmake. Я не понимаю, как должны выглядеть мои списки CMakeList.
#include "StackVector.h"
#include "profile.h"
#include <iostream>
using namespace std;
int main(){
{
StackVector<int, 10> sV;
}
}
Это мой основной. cpp, у меня также есть некоторая реализация StackVector (StackVector. cpp, StackVector.h). Мой CMakeLists.txt выглядит так
cmake_minimum_required(VERSION 3.15)
project(StackVector)
set (CMAKE_CXX_STANDARD 20)
add_library(StackVector SHARED StackVector.cpp)
add_executable(app main.cpp)
target_link_libraries(app StackVector)
Наконец, после сборки проекта я получаю сообщение об ошибке
Undefined symbols for architecture x86_64:
"StackVector<int, 10ul>::StackVector()", 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[2]: *** [app] Error 1
make[1]: *** [CMakeFiles/app.dir/all] Error 2
make: *** [all] Error 2
Что я сделал не так?