2
我需要在Mac OS X上構建一個庫(Ipopt),並使用它從兩個不同的程序(Python & Matlab)。但是,一個程序是32位,另一個是64位。我是否必須爲兩個架構構建兩個單獨的庫,然後爲每個程序相應地設置路徑?或者我可以在同一個庫文件中構建兩種體系結構,並且程序將選擇要加載的正確體系結構?如果可以的話,那麼如何?我可以在Mac OS上構建庫和32位和64位體系結構嗎?
謝謝!
我需要在Mac OS X上構建一個庫(Ipopt),並使用它從兩個不同的程序(Python & Matlab)。但是,一個程序是32位,另一個是64位。我是否必須爲兩個架構構建兩個單獨的庫,然後爲每個程序相應地設置路徑?或者我可以在同一個庫文件中構建兩種體系結構,並且程序將選擇要加載的正確體系結構?如果可以的話,那麼如何?我可以在Mac OS上構建庫和32位和64位體系結構嗎?
謝謝!
您可以構建兩種體系結構並將它們合併爲一個二進制文件。這樣做的工具是lipo
。
例如,如果你已經建立libpopt作爲一個32位的庫,並把它放在lib/
,並重新建立它作爲一個64位的庫,並放置在lib64/
,然後命令這兩個組合可能是:
lipo lib/libpopt.a lib64/libpopt.a -create -output libUniversal/libpopt.a
欲瞭解更多信息,請參見脂手冊頁(here,或通過man lipo
)。
很酷。之前不知道lipo。 – Truong