cmake configure_package_config_file没有正确添加PATH_VARS

问题描述

我有两个位于同一catkin工作区下的软件包

我有A包和B包,其中B需要获取A的包含文件和库文件

在A的var o365subnet = JsonConvert.DeserializeObject<ConvertJson>(o365Latest); var o365Final = o365subnet.latest; TableOperation tableOperation = TableOperation.InsertOrMerge(o365subnet.latest); 中,我有

CMakeLists.txt

并按照以下说明定义set(TEST_VAR "TEST") configure_package_config_file( fooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/fooConfig.cmake INSTALL_DESTINATION ... PATH_VARS TEST_VAR)

fooConfig.cmake.in

通过上述代码,我应该能够使用B中的set(foo_VERSION 0.0.1) @PACKAGE_INIT@ set_and_check(foo_TEST "@PACKAGE_TEST_VAR@") check_required_components(foo) 个关键字

find_package

在我期望的情况下, find_package(foo required) 不能为空(自动填写),并且 foo_LIBRARIES不能为空,因为我是通过foo_TEST提供的

但是我看到了以下结果

PATH_VARS

要更深入地了解行为,我直接将${foo_FOUND} - TRUE ${foo_TEST} - EMPTY !!! ${foo_INCLUDE_Dirs} - .../build/foo/usr/include ${foo_LIBRARIES} - EMPTY !!! 添加生成message中并打印出fooConfig.cmake变量。但是,我注意到它是空的。

总结一下,我想了解

  1. 为什么foo_TEST设置不正确
  2. 在B的CMakeLists.txt中是否${foo_LIBRARIES}为空。
  3. 为什么${foo_TEST}${foo_TEST}不可用

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...