Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一CMakeLists.txt中为同一项目创建静态库和可执行文件_Cmake_Static Libraries_Executable - Fatal编程技术网

在同一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谢谢,这就是我要找的。