簡體   English   中英

共享對象文件應放在何處?

[英]Where Should Shared Object Files Be Placed?

我正在冒險使用pybindgen為Python創建C / C ++綁定。 我已經按照“構建它(GCC說明)”中概述的步驟為示例文件創建綁定:

http://packages.python.org/PyBindGen/tutorial.html#a-simple-example

運行make會生成一個.so文件。 如果我沒有理解.so文件是如何工作的,我應該能夠import類的共享對象成Python。 但是,我不確定將文件放置在哪里以及如何讓Python知道它在哪里。 另外,原始的c / c ++源文件是否需要與.so文件一起使用?

到目前為止,我已經嘗試將文件放在/ usr / local / lib中,並將該路徑添加到DYLD_LIBRARY_PATH到.bash_profile中。 當我嘗試從Python Interpeter導入模塊時,拋出錯誤,指出找不到模塊。

所以,我的問題是:為了使Python程序可以使用生成的.so文件,該怎么做?

Python在搜索python的目錄中查找.so模塊。 因此,您必須像正常的python模塊一樣安裝它,或者在默認情況下位於python sys.path上的某個位置( /usr/share/python/site-lib或類似的東西-取決於發行版)或添加目錄到PYTHONPATH環境變量。

是使用dlopen而不是動態鏈接器加載模塊的python,因此LD_LIBRARY_PATH (請注意,沒有DY )將無法為您提供幫助。

與所有其他Python模塊相同。 它必須在sys.path指定的位置之一內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM