[英]libtool python module linking and installation
我使用autotools處理用C編寫的項目,該項目生成一個靜態庫。 我還在同一個項目的上下文中為C API提供了一個Python接口。 直到最近我才獲得了在項目中引入libtool的權限,以便能夠以便攜方式提供靜態和動態庫。 到目前為止,我使用distutils生成Python共享模塊,並將python模塊鏈接到項目的C靜態庫。 再次,那是因為我不允許將libtool /共享庫引入到ecuation中。 現在我想把libtool放進去,我面臨以下兩個有問題的場景:
如果我繼續使用distutils生成Python共享模塊,因為distutils和autotools不會互相交談,我需要告訴distutils鏈接到哪個C庫。 到目前為止,我無法想到任何方法,但解析.la文件以獲取庫libtool能夠生成的庫的名稱和路徑。 libtool是否提供有關它能夠在系統上生成什么類型的庫的任何信息?
如果我將Python模塊生產移動到automake,那很好,直到我到達安裝過程。 我不知道如何告訴libtool我想要我的Python模塊除了lib文件夾之外的其他地方,即'lib / python2.5 / site-packages / myproject'。 我試圖只是復制Makefile中的庫,但由於庫有錯誤的rpath(構建而不是安裝),因此無法正常工作。 我為什么要那里? 因為那里我也有.py包裝器。 那么,有沒有辦法告訴libtool在其他地方安裝我的模塊並正確設置rpath?
我想我只是在尋找一個優雅的解決方案,或者解決方案就在那里而且它很簡單,但我看不到它,因為我沒有足夠的經驗。 有幫助嗎?
PS更喜歡選項2,如果我可以使它工作,因為這樣我就不必將信息從autotools傳遞給distutils。
你讀過http://www.gnu.org/software/hello/manual/automake/Python.html嗎? 我不知道你是否想用pyexecdir
作為安裝模塊的位置。 如果是這樣,請將AM_PATH_PYTHON
添加到configure.ac
。
無論如何,在automake中, _PRIMARY
之前的_PRIMARY
指定要安裝的東西: lib_LTLIBRARIES
將在$(libdir)
安裝庫, pyexec_LTLIBRARIES
將安裝到$(pyexecdir)
, bin_PROGRAMS
將安裝到$(bindir)
,依此類推。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.