Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftPM:如何参考两个连接的C库设置Swift module.map_Swift_Swift Package Manager_Module Map - Fatal编程技术网

SwiftPM:如何参考两个连接的C库设置Swift module.map

SwiftPM:如何参考两个连接的C库设置Swift module.map,swift,swift-package-manager,module-map,Swift,Swift Package Manager,Module Map,我正在尝试构建一个Swift包管理器系统包(module.modulemap) 提供两个system C库,其中一个包含另一个 也就是说,一个(比如libcurl)是一个基本模块,另一个C库包括 (比如:#包括“libcurl.h”)。在常规C端,这是可行的,因为 makefiles传递了正确的-I标志,一切都很好(我可以推测) 在SPM中也这样做,但我希望避免向SPM添加额外的标志) 所以我想到的是这个模块图: module CBase [system] { header "/usr/in

我正在尝试构建一个Swift包管理器系统包(module.modulemap) 提供两个system C库,其中一个包含另一个

也就是说,一个(比如libcurl)是一个基本模块,另一个C库包括 (比如:
#包括“libcurl.h”
)。在常规C端,这是可行的,因为 makefiles传递了正确的
-I
标志,一切都很好(我可以推测) 在SPM中也这样做,但我希望避免向SPM添加额外的标志)

所以我想到的是这个模块图:

module CBase [system] {
  header "/usr/include/curl.h"
  link "curl"
  export *
}

module CMyLib [system] {
  use CBase
  header "/usr/include/mylib.h"
  link "mylib"
  export *
}
我在Swift软件包中导入了
CBase
。 但当我尝试导入
CMyLib
时,编译器会抱怨:

error: 'curl.h' file not found
这是可以理解的,因为编译器不知道在哪里查找 (尽管我认为
使用CBase
会有所帮助)

有没有一种方法可以让它在不需要向服务器添加
-Xcc-I
标志的情况下工作 构建过程

更新1:在一定程度上,这在 和 . 建议使用Package.swift
pkgConfig
设置。这似乎适合我的特定设置。但是,如果没有
.pc
文件,它就是一只鸡和鸡蛋。我尝试在包中嵌入自己的
.pc
文件,但系统包目录未添加到
PKG\u CONFIG\u路径
(因此在编译相关模块时不会考虑)。因此,问题在于:如何在安装了lib但没有
.pc
文件(只有头和lib)的环境中实现这一点