簡體   English   中英

libtool python模塊鏈接和安裝

[英]libtool python module linking and installation

我使用autotools處理用C編寫的項目,該項目生成一個靜態庫。 我還在同一個項目的上下文中為C API提供了一個Python接口。 直到最近我才獲得了在項目中引入libtool的權限,以便能夠以便攜方式提供靜態和動態庫。 到目前為止,我使用distutils生成Python共享模塊,並將python模塊鏈接到項目的C靜態庫。 再次,那是因為我不允許將libtool /共享庫引入到ecuation中。 現在我想把libtool放進去,我面臨以下兩個有問題的場景:

  1. 如果我繼續使用distutils生成Python共享模塊,因為distutils和autotools不會互相交談,我需要告訴distutils鏈接到哪個C庫。 到目前為止,我無法想到任何方法,但解析.la文件以獲取庫libtool能夠生成的庫的名稱和路徑。 libtool是否提供有關它能夠在系統上生成什么類型​​的庫的任何信息?

  2. 如果我將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.

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