1

我是 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 脚本的一部分在测试目录中安装一些东西。我认为这要么是在 Qpid tarball 中提供,要么是作为这个 cmake 过程的一部分生成的。

综上所述,我最终按住了输入键,接受了 cmake 的所有默认值,它生成了解决方案文件和项目文件。我能够在 VS2008 中打开生成的 Qpid 解决方案并构建一些项目。那么,这就提出了一个问题,为什么需要 setup.py?

4

1 回答 1

2

当在 users@qpid.apache.org 询问 Qpid 用户问题时,得到了很好的答复 qpid 开发人员对邮件列表的反应相当好。

cmake -i进行交互式配置。这就是它要求所有变量值的原因。cmake没有-i默认值。可以对系统应为“n”的变量回答“y”,从而生成无法正常工作的构建环境。尝试不使用-i开始。

使用两个不同的生成器在同一目录中运行两次 cmake 通常是一种不好的做法。在您的情况下,它将为 VS2008生成一个.sln文件和.vcproj文件,并为 VS2010 生成一个.sln文件和.vcxproj文件。如果您进行源内构建,文件可能看起来相同,但实际上并非如此。运行这两个cmake命令后,文件将继续看起来相同。

再次解压缩源 tarball 并尝试cmake使用源外构建。

mkdir b32-vs2010
cd b32-vs2010
cmake -G "Visual Studio 2010" ..\qpidc-0.18

目录b32-vs2010将包含您的 2010 解决方案和项目文件,以及所有生成的源文件。它使源目录保持干净并且没有生成的文件。

这应该在没有抱怨的情况下运行setup.py。如果您仍然遇到问题,请利用用户邮件列表。

于 2012-11-28T21:42:02.790 回答