2013-10-28 53 views
0

我剛剛開始一個項目C++與Panda3D。 (Visual Studio 2010中)無法打開lib python。 Panda3D項目。 VS

有了一個簡單的HelloWorld,我添加路徑等等。沒有編譯錯誤,除非:

剛剛出現的錯誤:

error LNK1104: cannot open file 'python27_d.lib' 

而且我不知道如何解決它。

Plz help!

謝謝!

+0

你需要修改與熊貓捆綁在一起的python安裝來解決這個問題。但是,您可以切換到「發佈」並編譯而不出問題。如果我沒有記錯,有一個頭文件有一個'#ifdef _DEBUG',然後鏈接到'python27_d.lib'。或者,您可以嘗試使用Visual Studio 2010查找和下載或構建自己的Python 2.7調試版。 – PeterT

+0

您使用的是哪個版本的Panda3D? 1.8.1版本與MSVC 2010不兼容,如果你想使用MSVC 2010,你需要使用最近的buildbot版本(點擊下載頁面上的「devel」)。 – rdb

回答

1

你可以做幾件事。

1)只是建立在釋放模式(不是一個好的解決方案,因爲你不能調試太清楚這樣)

2)基礎上添加「釋放」,但使用調試符號,並沒有其他的構建配置_DEBUG預處理定義(可以胡來了一些庫)

3)找到或建立一個Python 2.7版本的調試和發佈庫建在Visual Studio 2010

4)只是它真正改變這一節中的pyconfig.h鏈接到* .lib文件以僅使用python27.lib兩種配置。

/* For an MSVC DLL, we can nominate the .lib files used by extensions */ 
#ifdef MS_COREDLL 
# ifndef Py_BUILD_CORE /* not building the core - must be an ext */ 
#  if defined(_MSC_VER) 
      /* So MSVC users need not specify the .lib file in 
      their Makefile (other compilers are generally 
      taken care of by distutils.) */ 
#   ifdef _DEBUG 
#  //-----------------------change the next line-------------// 
#    pragma comment(lib,"python27_d.lib") 
#   else 
#    pragma comment(lib,"python27.lib") 
#   endif /* _DEBUG */ 
#  endif /* _MSC_VER */ 
# endif /* Py_BUILD_CORE */ 
#endif /* MS_COREDLL */ 

1)2)和4)是hacky的解決方案,所以我建議你嘗試使用3)。

+0

我剛試過所有這一切,但不起作用。 發佈時的編譯配置使其他編譯錯誤 - >沒有找到lib panda3d ... – F4Ke

+0

你有沒有在兩種配置中添加正確的庫?他們完全分開。因此,如果添加* .lib文件以在調試中鏈接,則仍然需要添加它們以用於發佈(除非在「所有配置」中添加它們)。因此,請確保您已在兩種配置中添加了所有必需的目錄和文件。 – PeterT

+0

您應該在發佈模式下編譯,不要定義_DEBUG,也不要定義NDEBUG。在發佈模式下編譯並不意味着無法進行調試 - 如果需要,仍然可以啓用調試符號。 – rdb