Clion:未找到目标“[NAME]”
Clion: Target "[NAME]" not found
尝试构建我的项目时,我在构建配置中看到了这一点(弹出):
"LUCID" 是我的项目名称。我认为昨天一切都很好,但现在在重申之后我得到了这个:
Error: Target 'LUCID (LUCID)' not found.
"Target" 下拉列表中只有一项(还有 "Build All" 选项)。正如 中所建议的那样,我在 CMakeLists.txt 中确实有 project(LUCID)
和 add_executable(LUCID ${SOURCE_FILES})
,尽管情况略有不同。
那么,为什么我会收到此错误消息,我该如何解决?
另一件需要注意的事情是,所有应该属于我的项目并在 set(SOURCE_FILES ...)
中指定的文件名在 CLion 文件浏览器中都是灰色的,它们不应该是灰色的。
我想你可以把所有的 include_directory
放在 add_executable
之前。
如果您使用 REQUIRED 关键字,则仅使用 find_package(SDL2 REQUIRED)
更进一步,您不必使用 if (lib_FOUND)
source here.
您的 CMake 可能看起来像这样
cmake_minimum_required(VERSION 3.2)
project(LUCID)
set(EXEC_NAME LUCID)
MESSAGE("a test message")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package (Box2D REQUIRED)
find_package (opengl REQUIRED)
find_package (SDL2 REQUIRED)
set(INCLUDE_DIR
sinclude
sinclude/3rdparty
uniheader
D:/freetype-2.5.3/GnuWin32/include
${BOX2D_INCLUDE_DIRS}
${OPENGL_INCLUDE_DIRS}
${SDL2_INCLUDE_DIRS}
)
include_directories(${INCLUDE_DIR})
set(SOURCE_FILES
ssrc/Cam.cpp
#...
#Lots of source and header files in the same form
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
message(STATUS "Boaorm")
add_executable(${EXEC_NAME} ${SOURCE_FILES})
target_link_libraries(${EXEC_NAME} ${BOX2D_LIBRARIES} ${OPENGL_LIBRARIES} ${SDL2_LIBRARY})
对于 SDL,我使用 this answer,但我不喜欢使用 ${PROJECT_NAME}
作为可执行文件名(您可以随意选择)
编辑:
多个target_link_libraries解释here
旧 cmake 的问题是 add_executable
之后的 include_directories
并且常见的工具链是 include -> compile -> link 那么我就遵循这个逻辑。
我昨天遇到了这个奇怪的错误。我的 CMakeLists.txt
是正确的(因为我可以通过终端构建项目)。
我的CMakeLists.txt
结尾是这样的:
add_executable(assignment-1 main.cpp ${SOURCES})
add_library(libassignment-1 STATIC ${SOURCES})
我删除了 CMake 缓存目录,注释掉 add_library()
并重新加载它。就这样,CLion 现在可以找到 assignment-1
可执行文件。然后我取消注释最后一行。所有配置都还可以
重置缓存并重新加载项目!
Tools > CMake > Reset Cache and Reload Project
尝试构建我的项目时,我在构建配置中看到了这一点(弹出):
"LUCID" 是我的项目名称。我认为昨天一切都很好,但现在在重申之后我得到了这个:
Error: Target 'LUCID (LUCID)' not found.
"Target" 下拉列表中只有一项(还有 "Build All" 选项)。正如 project(LUCID)
和 add_executable(LUCID ${SOURCE_FILES})
,尽管情况略有不同。
那么,为什么我会收到此错误消息,我该如何解决?
另一件需要注意的事情是,所有应该属于我的项目并在 set(SOURCE_FILES ...)
中指定的文件名在 CLion 文件浏览器中都是灰色的,它们不应该是灰色的。
我想你可以把所有的 include_directory
放在 add_executable
之前。
如果您使用 REQUIRED 关键字,则仅使用 find_package(SDL2 REQUIRED)
更进一步,您不必使用 if (lib_FOUND)
source here.
您的 CMake 可能看起来像这样
cmake_minimum_required(VERSION 3.2)
project(LUCID)
set(EXEC_NAME LUCID)
MESSAGE("a test message")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package (Box2D REQUIRED)
find_package (opengl REQUIRED)
find_package (SDL2 REQUIRED)
set(INCLUDE_DIR
sinclude
sinclude/3rdparty
uniheader
D:/freetype-2.5.3/GnuWin32/include
${BOX2D_INCLUDE_DIRS}
${OPENGL_INCLUDE_DIRS}
${SDL2_INCLUDE_DIRS}
)
include_directories(${INCLUDE_DIR})
set(SOURCE_FILES
ssrc/Cam.cpp
#...
#Lots of source and header files in the same form
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
message(STATUS "Boaorm")
add_executable(${EXEC_NAME} ${SOURCE_FILES})
target_link_libraries(${EXEC_NAME} ${BOX2D_LIBRARIES} ${OPENGL_LIBRARIES} ${SDL2_LIBRARY})
对于 SDL,我使用 this answer,但我不喜欢使用 ${PROJECT_NAME}
作为可执行文件名(您可以随意选择)
编辑:
多个target_link_libraries解释here
旧 cmake 的问题是 add_executable
之后的 include_directories
并且常见的工具链是 include -> compile -> link 那么我就遵循这个逻辑。
我昨天遇到了这个奇怪的错误。我的 CMakeLists.txt
是正确的(因为我可以通过终端构建项目)。
我的CMakeLists.txt
结尾是这样的:
add_executable(assignment-1 main.cpp ${SOURCES})
add_library(libassignment-1 STATIC ${SOURCES})
我删除了 CMake 缓存目录,注释掉 add_library()
并重新加载它。就这样,CLion 现在可以找到 assignment-1
可执行文件。然后我取消注释最后一行。所有配置都还可以
重置缓存并重新加载项目!
Tools > CMake > Reset Cache and Reload Project