我正在尝试构建一个Python 2.7核心DLL,包括一些VS2010的标准模块,以及来自Python源代码的标准工具集(v100):
https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
为外部库提供本地版本(最初,在构建期间使用svn调用请求这些版本)并使用正确的v100工具集调整属性文件,IDE可以构建正确的python dll,还有pyd和使用提供的pcbuild.sln为我的用例(x64调试和发布版本)提供了所提到的外部项目(sqlite,openssl等)的dll。
但是这对于使用devenv.com/.exe的命令行构建不起作用。我知道,msbuild会产生差异,但我从来没有听说过像我这样的devenv调用(总是来自同一个干净的源代码树,提前调用正确的vcvarsall.bat amd64
):
devenv pcbuild.sln /Build "Relase|x64"
将创建python27.dll,但几乎所有其他外部库都不存在,部分不存在(没有pyd)或以完全不同的方式打包(例如sqlite的导出文件在python.dll文件中找到) ,从IDE构建时不会创建。
有人知道解释这些差异的文档吗?此时,我甚至不知道从哪里开始,以便分析问题(除了为devenv调用生成/out
的日志文件)。
答案 0 :(得分:0)
在交互式更改devenv调用之后,打开的解决方案文件将所有项目重命名为' python'。
罪魁祸首是调用批处理文件,将环境变量PROJECTNAME定义为' python'。显然,这会产生与VS宏$(ProjectName)的冲突。