c++ - 将 ac 库路径从柯南包传递到源文件
问题描述
我正在使用柯南来打包一个旧的 C 库。
该库有一个加载过程,需要您从 .cpp 源文件中提供库的路径。如何从消费源内部访问 conan 打包库的目录?
所以设置是这样的:
柯南包大致像:
ole_c/0.0:
|--include
|-- ole_c_api.h
|--bin
|-- libole_c.so
消费:consumer_main.cpp
然后 consumer_main.cpp 包含 ole_c_api.h 并且必须调用将路径传递给 libole_c.so 的函数。
如何将该路径传递给 consumer_main.cpp?一种可能性是传递一个编译标志 -DPATH_TO_OLE_C_LIB= 然后可以通过 consumer_main.cpp 中的宏进行字符串化。如何从 cmake 内部或 ole_c 包装 conan.py 中访问 libole_c.so 的路径并适当地传递它?
解决方案
您可以使用cmake 生成器表达式来获取目标库的路径。如果您在TARGETS
模式下使用柯南,那么您可以这样做:
target_compile_definitions(MyApp PRIVATE PATH_TO_OLE_C_LIB=$<TARGET_FILE:CONAN_PKG::ole_c>)
或者,您可以填充cpp-info.defines
柯南配方中的 并利用该package_folder
属性来获取包的安装路径(我不确定这将如何工作)。
推荐阅读
- angular - 如何在 ionic 中更改选项卡时弹出所有选项卡堆栈?
- java - 从 Maven Central 添加 Open JavaFX 包时出现 gradle 问题
- docker - Docker swarm - 在许多管理器的情况下的请求流
- angular - Angular 2 异步验证器
- ios - 从越狱的 Iphone 4 读取传出的短信
- unity3d - Unity 中的 Vuforia 开发协议问题
- javascript - 绝对定位不滚动
- docker - Docker 共享常用的 bins 和 libs?
- javascript - Slack oauth.access API 返回 bad_redirect_uri 而不请求 redirect_uri
- python - 如何扩展损失函数 Pytorch