【问题标题】:boost-python example doesn't link under clang-darwin toolsetboost-python 示例在 clang-darwin 工具集下没有链接
【发布时间】:2012-08-19 16:11:59
【问题描述】:

我过去在其他 Mac 上安装了 boost-python 没有问题,但由于某种原因,我在我的新 MacBook 上遇到了问题。当我尝试运行“快速启动”boost-python 示例时,bjam 在链接第二个示例时挂起。这是我的构建日志,它显示第一个示例构建并通过,但第二个示例从未完成链接(bjam 挂在日志的最后一行)。有什么可能导致这种情况的猜测吗?

(顺便说一下,我使用的是 python 2.7、boost 1.49、osx 10.7 和 clang 3.1)

>>> cd boost_1_49_0/libs/python/example/quickstart/
>>> ../../../../bjam -a --verbose-test test
...patience...
...patience...
...found 1692 targets...
...updating 40 targets...
darwin.compile.c++ bin/darwin-4.2.1/debug/embedding.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/numeric.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/list.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/long.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/dict.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/tuple.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/str.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/slice.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/converter/from_python.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/converter/registry.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/converter/type_id.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/enum.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/class.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/function.o
../../../../libs/python/src/object/function.cpp: In member function ‘PyObject* boost::python::objects::function::call(PyObject*, PyObject*) const’:
../../../../libs/python/src/object/function.cpp:169: warning: comparison is always true due to limited range of data type
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/inheritance.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/life_support.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/pickle_support.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/errors.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/module.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/converter/builtin_converters.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/converter/arg_to_python_base.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/iterator.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/stl_iterator.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object_protocol.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object_operators.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/wrapper.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/import.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/exec.o
darwin.compile.c++ ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/object/function_doc_signature.o
darwin.link.dll ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/libboost_python.dylib
darwin.link bin/darwin-4.2.1/debug/embedding
testing.capture-output bin/test_embed.test/darwin-4.2.1/debug/test_embed.run
====== BEGIN OUTPUT ======
registering extension module embedded_hello...
defining Python class derived from Base...
testing derived class from C++...
success!
running file script.py...
Hello World !
success!
intentionally causing a python exception...
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'unknown' is not defined
No errors detected.

EXIT STATUS: 0
====== END OUTPUT ======
**passed** bin/test_embed.test/darwin-4.2.1/debug/test_embed.test
common.mkdir bin/test_ext.test
common.mkdir bin/test_ext.test/darwin-4.2.1
common.mkdir bin/test_ext.test/darwin-4.2.1/debug
darwin.compile.c++ bin/darwin-4.2.1/debug/extending.o
darwin.link.dll bin/darwin-4.2.1/debug/extending.so

【问题讨论】:

    标签: c++ clang boost-python


    【解决方案1】:

    听起来很像this 错误。我自己无法找到解决方法,但过去几周我一直在使用 Boost.Python,但它不会影响我自己的代码。

    请注意,如果您的 Python 测试文件(可能在构建后调用)由于任何原因(例如在 pdb 断点处)挂起,那么您将看到类似的行为。

    【讨论】:

    • 我忘了我已经发布了这个问题。感谢您的回复。 boost-build 邮件列表中的This post 确认您确定了正确的问题(但没有解决任何问题)。该线程的其余部分演变为一个不相关的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    相关资源
    最近更新 更多