我是Apache Qpid,Cmake和Python的新手。我已经在Debian上成功构建了Qpid并运行了一些测试。我现在正在尝试在Windows上构建Qpid,以便我可以编写一个C#客户端,但似乎有些错误。当我运行cmake命令时,它最终会给我以下输出:
Please wait while cmake processes CMakeLists.txt files....
C:/Program Files (x86)/Python330/python.exe: can't open file 'setup.py': [Errno 2] No such file or directory
Variable Name: BUILD_ACL
Description: Build ACL enforcement broker plugin
Current Value: ON
New Value (Enter to keep current value):
我想了解何时应该生成/下载setup.py.我找不到它,我找不到任何描述它应该何时生成或安装的文档。另外,有点偏离主题,为什么cmake进程开始提示我使用BUILD_ACL和其他配置?
我已经使用以下命令为VS 2008和2010运行了cmake,并且两者都产生相同的输出:
cmake -i -G "Visual Studio 9 2008" .
cmake -i -G "Visual Studio 2010" .
我使用Apache的以下文件来构建Qpid: qpid-CPP-0.18.tar.gz
从上面的日志语句可以看出,我使用的是Python 3.3.0。
据我所知,setup.py是Python用于安装组件的文件。似乎cmake脚本试图根据我通过搜索setup.py找到的cmake脚本的一部分在tests目录中安装一些东西。我认为这可以在Qpid tarball中提供,或者以某种方式在cmake进程中生成。
所有这一切,我最终按住enter键接受cmake的所有默认值,它生成了解决方案文件和项目文件。我能够在VS2008中打开生成的Qpid解决方案并构建一些项目。所以,这提出了一个问题,为什么需要setup.py?
答案 0 :(得分:2)
当在users@qpid.apache.org上询问时,Qpid用户问题得到了很好的回复 qpid开发人员对邮件列表非常敏感。
cmake -i
执行交互式配置。这就是它要求所有变量值的原因。没有cmake
的{{1}}会使用默认值。对于系统应该为'n'的变量,可以回答“y”,从而产生无法工作的构建环境。尝试不使用-i
来开始工作。
使用两个不同的生成器在同一目录中运行两次cmake通常是一种不好的做法。在您的情况下,它将为VS2008生成 .sln 文件和 .vcproj 文件,它将生成 .sln 文件和 VS2010的.vcxproj 文件。如果您在源代码构建中执行文件可能看起来相同,但它们不是。运行两个-i
命令后,文件将继续保持相同。
再次解压缩源tar包并使用源外构建尝试cmake
。
cmake
目录 b32-vs2010 将包含您的2010解决方案和项目文件以及所有生成的源文件。它使源目录保持干净,没有生成的文件。
这应该在没有mkdir b32-vs2010
cd b32-vs2010
cmake -G "Visual Studio 2010" ..\qpidc-0.18
投诉的情况下运行。如果您仍然遇到问题,请利用用户邮件列表。