【问题标题】:Quantlib-SWIG for Python error, missing Quantlib/quantlib_wrap.cpp on MacOS SierraQuantlib-SWIG for Python 错误,MacOS Sierra 上缺少 Quantlib/quantlib_wrap.cpp
【发布时间】:2017-05-03 21:43:35
【问题描述】:

我从 Sourceforge 下载了 Qauntlib-SWIG v1.9,还尝试了 github master 分支,按照 official page 上的说明进行操作,但在这两种情况下,我都会收到以下错误消息。

我正在运行 MacOS Sierra / Python 3.6 / boost 版本 1.64.0_1,gcc 以下版本。我用Homebrew 安装了quantlib v1.9.2。

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

我怀疑错误是由下面的第一条语句引起的:python -c++ ... 它似乎不是 python 的有效标志,它给出了错误消息(在命令提示符下尝试了python -c++,得到了同样的错误) .

知道这个标志是如何/从哪里来的吗?谢谢。

错误信息:

(py36) me:QuantLib-SWIG $ make -C Python
python -c++ -modern -outdir QuantLib \
            -o QuantLib/quantlib_wrap.cpp ../SWIG/quantlib.i
  File "<string>", line 1
    ++
     ^
SyntaxError: invalid syntax
make: [QuantLib/quantlib_wrap.cpp] Error 1 (ignored)
python -c++ -modern -outdir QuantLib \
            -o QuantLib/quantlib_wrap.cpp ../SWIG/quantlib.i
  File "<string>", line 1
    ++
     ^
SyntaxError: invalid syntax
make: [QuantLib/QuantLib.py] Error 1 (ignored)
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
python -c++ -modern -outdir QuantLib \
            -o QuantLib/quantlib_wrap.cpp ../SWIG/quantlib.i
  File "<string>", line 1
    ++
     ^
SyntaxError: invalid syntax
make[1]: [QuantLib/quantlib_wrap.cpp] Error 1 (ignored)
python -c++ -modern -outdir QuantLib \
            -o QuantLib/quantlib_wrap.cpp ../SWIG/quantlib.i
  File "<string>", line 1
    ++
     ^
SyntaxError: invalid syntax
make[1]: [QuantLib/QuantLib.py] Error 1 (ignored)
CXXFLAGS="-O2 -stdlib=libstdc++ -mmacosx-version-min=10.6 -fno-strict-aliasing -Wno-unused -Wno-uninitialized -Wno-sign-compare -Wno-write-strings" CC="gcc" CXX="g++" /Users/me/anaconda/envs/py36/bin/python setup.py build
running build
running build_py
file QuantLib/QuantLib.py (for module QuantLib.QuantLib) not found
file QuantLib/QuantLib.py (for module QuantLib.QuantLib) not found
running build_ext
building 'QuantLib._QuantLib' extension
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/me/anaconda/envs/py36/include -arch x86_64 -I/Users/me/anaconda/envs/py36/include -arch x86_64 -I/Users/me/anaconda/envs/py36/include/python3.6m -I/usr/local/Cellar/quantlib/1.9.2/include -c QuantLib/quantlib_wrap.cpp -o build/temp.macosx-10.7-x86_64-3.6/QuantLib/quantlib_wrap.o -Wno-unused -O2 -stdlib=libstdc++ -mmacosx-version-min=10.6 -fno-strict-aliasing -Wno-unused -Wno-uninitialized -Wno-sign-compare -Wno-write-strings
clang: error: no such file or directory: 'QuantLib/quantlib_wrap.cpp'
clang: error: no input files
error: command 'gcc' failed with exit status 1
make[1]: *** [.build-stamp] Error 1
make: *** [all] Error 2
(py36) me:QuantLib-SWIG $ 

【问题讨论】:

  • gcc 不能编译 C++... g++ 可以...
  • 这与g++无关。

标签: python quantlib quantlib-swig


【解决方案1】:

弄清楚为什么会这样。 Grepped Makefile。如果事实上它正在寻找 SWIG。所以brew install swig 解决了这个问题。

虽然官方安装网页说swig不是必须的,但最后还是需要的。

【讨论】:

  • 嗯,不,这不是必需的。 quantlib_wrap.cpp 包含在版本中(您可以再次下载并检查)。如果你从 GitHub 克隆代码,那么是的,你需要 SWIG。可能发生的情况是make clean 也删除了包装器。我们可能需要在说明中添加一些关于它的内容。无论如何,很高兴它最终奏效了。
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多