簡體   English   中英

Boost python不斷鏈接python27庫

[英]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
  • 取消注釋,包括“修復”它
  • 我到處都在使用python 3.6
  • 我用add_definitions(... -DBOOST_ALL_NO_LIB -DBOOST_PYTHON_DEBUG)禁用了自動鏈接以增強CMake

我的問題:

  • 是誰或什么原因造成的? boost是否直接鏈接python庫?
  • 在Visual Studio中是否有可能以某種方式突出顯示預處理器遇到#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.

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