2013-10-28 55 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