c++ - 无法使用 cmake 将项目与库和可执行文件链接
问题描述
我是cmake的新手。我不明白我的 CMakeLists 应该是什么样子。
#include "StackVector.h"
#include "profile.h"
#include <iostream>
using namespace std;
int main(){
{
StackVector<int, 10> sV;
}
}
这是我的 main.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
我做错了什么?
解决方案
推荐阅读
- java - 嵌套异常是 org.hibernate.exception.JDBCConnectionException:无法获取 JDBC 连接
- python - 钢琴python中的键盘绑定
- python - 为什么我得到 generator has no len error on this code?
- c# - 有没有更快的方法将图像分配给许多按钮?
- c - 是否可以在没有锁的多线程程序中实现 2 行代码始终按顺序出现?
- apache-spark - Spark DataFrame 中的领域特定语言 API 是什么?
- flutter - 在类的方法中访问状态的哪种方式是正确的?
- javascript - 是否可以使用 highcharts 将计算放在 plotbands 内?
- reactjs - 如何在 React mui-Datatable 中完成 customRender
- python - 如何从图像中提取虚线文本?