c++ - CMAKE 对上游 C++ Header-only 库的依赖
问题描述
我有一个相对简单的仅包含标头的 C++ 库,其结构如下
- apps
- app
- CMakeLists.txt
- app.cpp
- include
CMakeLists.txt
该库本身位于项目的根目录中,然后app1
添加。我的意图是使用仅标头库作为引用包含目录和链接依赖项的目标。
这是根CMakeLists.txt
文件:
project(myLib)
find_package( OpenGL REQUIRED )
find_package( GLEW REQUIRED )
find_package( Eigen3 REQUIRED )
# add the target
add_library( ${PROJECT_NAME} INTERFACE )
target_include_directories( ${PROJECT_NAME} INTERFACE . )
target_link_directories( ${PROJECT_NAME} INTERFACE OpenGL::OpenGL GLEW::glew Eigen3::Eigen )
# add apps
add_subdirectory(apps)
和CMakeLists.txt
应用程序的文件:
project(app)
# find Qt5
find_package(Qt5 COMPONENTS Gui Widgets OpenGL REQUIRED)
# add the exec
add_executable( ${PROJECT_NAME} app.cpp )
target_include_directories( ${PROJECT_NAME} PRIVATE . )
target_link_libraries( ${PROJECT_NAME} myLib Qt5::Gui Qt5::Widgets Qt5::OpenGL )
由于app1
是下游,myLib
我认为我可以添加myLib
到应用程序的链接库中,它会自动配置所有内容。这不起作用,并且app
看不到.myLib
任何想法如何解决这个问题,或者如果方法一开始就错误的解释?
谢谢
解决方案
推荐阅读
- javascript - Visual Studio 2017 不显示 js 文件的折叠图标
- estimation - R中的嗯估计
- selenium - 当dom随窗口大小变化时如何使用xpath查找元素
- python - 将 XML 嵌套到 Pandas 数据框
- react-native - 导入加密时出错 - 尝试更新 React Native 中的一些模块,现在出现加密错误
- python - Pandas 基于 timedelta 的条件外连接(merge_asof)
- jquery - ScrollMagic 动态地将每个面板的wipeAnimation 加倍
- php - 通过php在html标签中插入Php代码
- android-studio - 将 Android Studio 中的深色主题应用于每个活动
- sql-server - 如何正确将导入的 SQL 查询转换为 SSRS 中的表达式字符串