问题描述
我有两个位于同一catkin工作区下的软件包
在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
变量。但是,我注意到它是空的。
总结一下,我想了解
- 为什么
foo_TEST
设置不正确 - 在B的CMakeLists.txt中是否
${foo_LIBRARIES}
为空。 - 为什么
${foo_TEST}
内${foo_TEST}
不可用
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)