在同一CMakeLists.txt中为同一项目创建静态库和可执行文件
我正试图编写一个在同一CMakeLists.txt中为同一项目创建静态库和可执行文件,cmake,static-libraries,executable,Cmake,Static Libraries,Executable,我正试图编写一个CMakeLists.txt来创建一个静态库,并在同一个CMakeLists.txt中使用它来创建一个可执行文件并与之链接 cmake_minimum_required(VERSION 3.17) set(CMAKE_CXX_STANDARD 11) project(myproject) # Creating libmyproject.a add_library(${PROJECT_NAME} myClass.cpp myClass.h) # Creating myproj
CMakeLists.txt
来创建一个静态库,并在同一个CMakeLists.txt
中使用它来创建一个可执行文件并与之链接
cmake_minimum_required(VERSION 3.17)
set(CMAKE_CXX_STANDARD 11)
project(myproject)
# Creating libmyproject.a
add_library(${PROJECT_NAME} myClass.cpp myClass.h)
# Creating myproject as an executable
add_executable(${PROJECT_NAME} main.cpp)
# Linking against libmyproject.a
target_link_libraries(${PROJECT_NAME} ${PROJECT_NAME})
我收到一个错误,指示
add\u executable
无法创建目标,因为存在另一个同名的目标。有人能帮忙吗?请选择另一个目标名称add_executable(${PROJECT_NAME}2
?不是target_link_库(${PROJECT_NAME}${PROJECT_NAME})
替换为target_link_库(myproject myproject)
?目标的命名是相同的,因为您希望它们的命名类似吗?如果是这样,您可以做add_executable(${PROJECT_NAME}-exe main.cpp)
设置目标属性(${PROJECT\u NAME}-exe属性输出${PROJECT\u NAME})
?@Anthony谢谢,这就是我要找的。