Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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/8/swift/18.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/8/variables/2.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
os x swift生成包管理器无法从unixODBC依赖项中找到共享库_C_Swift - Fatal编程技术网

os x swift生成包管理器无法从unixODBC依赖项中找到共享库

os x swift生成包管理器无法从unixODBC依赖项中找到共享库,c,swift,C,Swift,在OS X El Capitan上,我试图为unixODBC 2.3.4集成一个swift包装器,但在链接器步骤生成失败,出现以下错误: ld:未找到体系结构x86\u 64的-lodbc.2的库 我立即确认安装的库实际上是64位的: file /usr/local/lib/libodbc.dylib /usr/local/lib/libodbc.dylib: Mach-O 64-bit dynamically linked shared library x86_64 对于我的项目,我使用

在OS X El Capitan上,我试图为unixODBC 2.3.4集成一个swift包装器,但在链接器步骤生成失败,出现以下错误:

ld:未找到体系结构x86\u 64的-lodbc.2的库

我立即确认安装的库实际上是64位的:

file /usr/local/lib/libodbc.dylib 
/usr/local/lib/libodbc.dylib: Mach-O 64-bit dynamically linked shared library x86_64 
对于我的项目,我使用的是swift软件包管理器,因此我为swift安装了最新的开发人员位,并将其bin文件夹预先添加到我的
路径
环境变量中:

export PATH=/Library/Developer/toolschains/swift latest.xctoolschain/usr/bin:$PATH

我使用自制软件成功地安装了unixODBC 2.3.4,并创建了必要的odbcinst.ini和odbc.ini文件以访问postegresql数据库。通过使用unixODBC附带的isql实用程序连接到远程数据库,我确认了odbc的安装和配置是正确的

在我的CunixODBCswift项目中,我创建了以下module.modulemap文件,引用了新安装的unixODBC共享库

module CunixODBC [system] {
   header "/usr/local/Cellar/unixodbc/2.3.4/include/unixodbc_conf.h"
   header "/usr/local/Cellar/unixodbc/2.3.4/include/sql.h"
   header "/usr/local/Cellar/unixodbc/2.3.4/include/sqltypes.h"
   link "odbc" 
   export *
}
在建立对CunixODBC依赖关系的myswiftodbc项目中,my Package.swift文件为:

import PackageDescription

let package = Package(
    dependencies: [
        .Package(url: "../CunixODBC", versions: Version(0,0,4)..<Version(1,0,0))
    ]
)
编译和链接成功,生成的可执行文件按预期工作


我缺少什么步骤或配置?

尝试将:
-Xlinker-L/usr/local/lib
添加到您的
swift构建
实例化中。

尝试将:
-Xlinker-L/usr/local/lib
添加到您的
swift构建
实例化中。

我尝试了一次,但不幸的是它没有起作用。第一次尝试生成以下错误:`swift build-Xlinker/usr/local/lib Linking swiftobc ld:无法映射文件,errno=22文件'/usr/local/lib'用于架构x86_64:0:error:link命令失败,退出代码为1(使用-v查看调用):0:error:build有1个命令失败错误:退出(1):/Library/Developer/toolschains/swift-DEVELOPMENT-SNAPSHOT-2016-03-01-a.xctoolschain/usr/bin/swift-build-tool-f/Users/cwhelan/DEVELOPMENT/swift/swifftodbc/.build/debug.yaml default'消息表明它需要完整的文件路径,因此我接下来尝试了odbc库的完整路径:swift build-Xlinker/usr/local/libodbc.dylib。这消除了“无法映射文件”错误,但原始帖子返回了错误。很抱歉,它应该是:
-Xlinker-L/usr/local/lib
我尝试了一下,不幸的是它没有工作。第一次尝试生成以下错误:`swift build-Xlinker/usr/local/lib Linking swiftobc ld:无法映射文件,errno=22文件'/usr/local/lib'用于架构x86_64:0:error:link命令失败,退出代码为1(使用-v查看调用):0:error:build有1个命令失败错误:退出(1):/Library/Developer/toolschains/swift-DEVELOPMENT-SNAPSHOT-2016-03-01-a.xctoolschain/usr/bin/swift-build-tool-f/Users/cwhelan/DEVELOPMENT/swift/swifftodbc/.build/debug.yaml default'消息表明它需要完整的文件路径,因此我接下来尝试了odbc库的完整路径:swift build-Xlinker/usr/local/libodbc.dylib。这消除了“无法映射文件”错误,但返回了原始帖子中的错误。很抱歉,应该是:
-Xlinker-L/usr/local/lib
cc  -L/usr/local/lib -I/usr/local/Cellar/unixodbc/2.3.4/include -lodbc odbctest.c -o odbctest