您无法从一个头文件创建库:
add_library(ImageFilter itkImageFilter.hxx) SET_TARGET_PROPERTIES(ImageFilter PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(ImageFilter ${ITK_LIBRARIES})
这就是你设置的原因 LINKER_LANGUAGE 明确 - 有 的 没有 强> 链接和cmake很困惑。
LINKER_LANGUAGE
所以 include_directories 足够:
include_directories
include_directories(${PROJECT_SOURCE_DIR}/lib)
的 BTW 强> :
你不需要检查 ITK_FOUND 如果你指定 REQUIRED :
ITK_FOUND
REQUIRED
FIND_PACKAGE (ITK REQUIRED) IF( ITK_FOUND ) include( ${ITK_USE_FILE} ) ENDIF( ITK_FOUND )
从 文件 :
The REQUIRED option stops processing with an error message if the package cannot be found.
PROJECT_SOURCE_DIR 没有必要平等 itkNormals_SOURCE_DIR (您可以使用其他项目中的此文件):
PROJECT_SOURCE_DIR
itkNormals_SOURCE_DIR
可以通过以下方式修复:
include_directories(${itkNormals_SOURCE_DIR}/lib) include_directories(${CMAKE_CURRENT_LIST_DIR}/../lib)
或者只是从父文件中包含:
# src/CMakeLists.txt include_directories("./lib")