2016-04-13 24 views
0

gelen kütüphaneyi paylaşılıyor olamaz, ben unixODBC 2.3.4 için hızlı sarmalayıcı entegre çalışılıyor, ancak yapı ile bağlayıcı aşamasında başarısız aşağıdaki hata:os x hızlı inşa paket yöneticisi unixODBC C bağımlılık OS X El Capitan On

ld: library not found for -lodbc.2 for architecture x86_64

hemen monte kitaplık aslında 64 bit olduğunu doğruladı:

file /usr/local/lib/libodbc.dylib 
/usr/local/lib/libodbc.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

için benim Ben hızlı paket yöneticisini kullanan am proje, bu yüzden hızlı en son geliştirici bitlerini yüklü ve benim PATH ortam değişkeni olan bin klasörünü de başa gelmiş:

export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:$PATH

Ben unixODBC 2.3.4 yüklü başarıyla homebrew kullanarak ve bir postegresql veritabanına erişmek için gerekli odbcinst.ini ve odbc.ini dosyalarını yarattı. UnixODBC'nin içerdiği isql yardımcı programıyla uzak bir veritabanına bağlanarak odbc kurulumunun ve yapılandırmasının doğru olduğunu doğruladım. Benim CunixODBC hızlı projede

Ben yeni yüklenen unixODBC paylaşılan kütüphane

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 * 
} 
başvuran aşağıdaki module.modulemap dosyası oluşturduk CunixODBC bağımlılığı kurar benim swiftodbc projesi, benim Paketi olarak

.swift dosyası:

import PackageDescription 

let package = Package(
    dependencies: [ 
     .Package(url: "../CunixODBC", versions: Version(0,0,4)..<Version(1,0,0)) 
    ] 
) 

Ek onay olarak unixODB C düzgün çalışıyor, C'da küçük bir test programı yazdım ve unixODBC paylaşılan kütüphanesine bağlı. Derleme dizgim:

cc -L/usr/local/lib -I/usr/local/Cellar/unixodbc/2.3.4/include -lodbc odbctest.c -o odbctest 

Derleme ve bağlantı başarılı ve sonuç olarak çalıştırılabilir çalışmayı beklendiği gibi işler.

Hangi adımı veya yapılandırmayı özlüyorum?

cevap

2

Ekleme: -Xlinker -L/usr/local/lib sizin için swift build örneğidir.

+0

Denedim ve maalesef işe yaramadı. İlk girişimde aşağıdaki hata oluştu: 'swift build -Xlinker/usr/local/lib Bağlantı swiftodbc ld: dosya eşleyemiyor, errno = 22 'mimarisi için'/usr/local/lib 'dosyası x86_64 : 0 : hata: bağlantı komutu, çıkış kodu 1 ile başarısız oldu (çağrısı görmek için -v kullanın) : 0: hata: build 1 komut başarısız oldu hata: exit (1):/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT -2016-03-01-a.xctoolchain/usr/bin/swift-build-tool -f /Users/cwhelan/development/swift/swiftodbc/.build/debug.yaml varsayılan ' – Chris

+0

Mesaj tam istediğini belirtti dosya yolu böylece sonraki odbc kütüphane tam yolunu çalıştı: hızlı build -Xlinker /usr/local/lib/libodbc.dylib. Bu, "dosya eşleyemedi" hatasını ortadan kaldırdı, ancak orijinal gönderideki hata döndü. – Chris

+0

Üzgünüz, şöyle olmalıydı: -Xlinker -L/usr/local/lib' – mxcl