[英]boost python keeps linking python27 library
由於幾天我想開始使用升壓Windows上的Python,而不是我的樹莓派,我面臨着提升(或它的一些依賴)關於對鏈接堅持問題python27.lib
代替python36.lib
(我使用Python 3.6 )
在我的樹莓派上,我正在使用捆綁的python,它剛好是2.X並與boost_python鏈接。 現在在Windows上,我鏈接到boost_python3。 我在CMake中檢查了所有包含路徑,它們都指向3.6 python路徑。 我什至在系統上重命名了包含python(一個獨立的2.7和cygwin中的一個)的所有路徑的其他版本(我將cygwin文件夾重命名為cygwin2
並刪除了獨立的python 2.7文件夾)。 它仍然想要那個圖書館...
在我的節目,我有一個單一#include
與蟒蛇,這是一個#include <boost/python.hpp>
我遵循了Visual Studio中的include,它將我帶到我在CMake中指定的boost目錄中的python.hpp,這樣分辨率就可以了。 在boost/python.hpp
內部,最終您將進入wrap_python.hpp
,其中包含python標頭。 我在Visual Studio中也遵循了這些規則,它引導我進入Python 3.6文件夾中的文件。
在包含(刪除)的注釋中添加(使之刪除)可使程序正常編譯,因此我沒有意外地將其作為庫添加到CMake中。 在某處必須有一些#pragma comment
。
所以總結一下:
#include <Python.h>
boost/python.hpp
add_definitions(... -DBOOST_ALL_NO_LIB -DBOOST_PYTHON_DEBUG)
禁用了自動鏈接以增強CMake 我的問題:
#pragma
所有文件/行,因此我可以對其進行跟蹤(因為我很確定它以某種方式會得到一個我不知道的2.7 python ...) 我剛剛經歷了這個 Boost,它將檢查PY_MAJOR_VERSION
以確定要鏈接的庫。 因此,在c++ > General > Additional Include Directories
,添加python include路徑,以便boost可以看到PY_MAJOR_VERSION == 3
。 如果不是,它將默認拉入2.x庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.