swift - Swift C 互操作:如何避免模块映射头的绝对路径?
问题描述
我正在使用 C 互操作功能在 C 库(ROS2 RCL)上构建一个快速包装器。我目前正在使用带有模块映射的 CMake 来实现此功能。目前,我的模块图看起来像这样:
module CRcl [system] {
header "/opt/ros/foxy/include/rcl/rcl.h"
link "rcl"
export *
}
这目前在我的系统上构建得很好。但是,使用绝对路径是一个非常糟糕的解决方案,因为它需要针对不同的操作系统或自定义安装路径进行修改。我希望它能够被自动发现。
理想情况下,我会想象这样的事情:
module CRcl [system] {
header "rcl/rcl.h"
link "rcl"
export *
}
我没有指定绝对路径,而是指示编译器通过 CLI arg 或环境变量查找头文件。我已经看到了在 XCode 中使用框架的各种指南,但没有任何与我在 Linux 上的设置相关的指南。有谁知道实现此功能的方法?
解决方案
推荐阅读
- google-maps - 如何在 iOS 和 android 上以 react native 实现谷歌地图?
- jquery - 重新连接到 Nodejs socket.io 服务器
- linux-kernel - 在 Linux 内核中向用户空间公开一个额外的标头
- java - 如何使用 O(n) 时间复杂度算法查找有效子字符串的数量
- binary - 将二进制文件从特定地址点填充到地址中的另一个特定地址点
- jquery - Jquery:更改 div 的内容会修改其行为
- typescript - Vue + webpack + TS:生成声明时找不到.vue.d.ts
- angular - 在 Angular 上调整 SVG 大小
- sql - 访问加入 TRANSFORM / PIVOT 查询
- java - 如何解决“使用构建器创建时客户端是不可变的”?