我寫了一個使用libusb
的C程序。現在我想分發這個程序到「普通」(非開發)Mac OS X電腦。但是,當我移植了編譯的文件到測試機器,我得到了以下錯誤:在動態C庫(dylib)中編譯爲OS X上的程序
dyld: Library not loaded: /opt/local/lib/libusb-0.1.4.dylib
Referenced from: /Users/kitty/myprogram
Reason: image not found
Trace/BPT trap: 5
當我複製文件(所有文件僅適用)
/opt/local/lib/libusb-0.1.4.dylib /opt/local/lib/libusb-1.0.a
/opt/local/lib/libusb.a
/opt/local/lib/libusb-1.0.0.dylib /opt/local/lib/libusb-1.0.dylib
/opt/local/lib/libusb.dylib
從我的機器到目標機器程序工作完美無瑕。
但我真的想創建或編譯成一個單一的可執行文件。這怎麼可能?
使用-static
雖然編譯不起作用,因爲並非所有的庫都可以靜態編譯到最終的應用程序中(請參見this SO question here)。
那麼我該如何製作一個整潔的小應用程序文件?