【问题标题】:Error trying to install QCL (Quantum Computation Language) on Mac 10.11尝试在 Mac 10.11 上安装 QCL(量子计算语言)时出错
【发布时间】:2016-06-02 01:59:59
【问题描述】:

我正在尝试从 this source 安装 QCL-0.6.4,但是当我在终端中使用 make 命令尝试时,我不断收到错误。

我是 this thread about installing QCL on OSX 来的,但是在尝试调整 Makefile 时,我总是遇到这个错误:

extern.cc:84:18: error: variable length array of non-POD element type     'tComplex'
  (aka 'complex<double>')
 tComplex u[dim][dim];
             ^
extern.cc:193:9: error: variable length array of non-POD element type 'term'
 term t[dim];
    ^
extern.cc:224:9: error: variable length array of non-POD element type 'term'
 term t[dim];

对此的任何帮助将不胜感激。

【问题讨论】:

  • 嗨@朱利安。如果任何答案解决了您的问题,请考虑通过单击复选标记接受它。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。

标签: macos quantum-computing qcl


【解决方案1】:

这里有一些问题需要克服才能在 OSX 上进行编译。我在下面的说明假设您在 El Capitan(在我的实例中为 10.11.1)上运行,但对于不同的版本,您可能会从中获得一些经验。

首先,Xcode 目前使用 Apple 的 LLVM 编译器作为默认的 C++ 编译器。但是,这并不支持 GCC 的一些扩展,比如支持非 POD 变长数组。

为了解决这个问题,我安装并编译了 GCC:如果你还没有安装 Homebrew,然后安装最新的 GCC 编译器:

$ brew install gcc

在撰写本文时,这将安装 GCC v5.2.0。 这应该可以解决您最初的问题,但您会立即打击其他人!

下一个问题是包含的 libqc.a 需要为 x86_64 重新编译。因此,您需要修改文件&lt;base_dir&gt;/qc/Makefile,并进行以下更改:

...
# Add:
CXX = /usr/local/Cellar/gcc/5.2.0/bin/g++-5
CXXFLAGS = $(ARCHOPT) -c -pedantic -Wall $(DEBUG) $(PRGOPT)
...

然后重建libqc.a:

$ cd qc; make clean; make

如果一切顺利,你应该有一个闪亮的新libqc.a

最后,修改主 Makefile &lt;base_dir&gt;/Makefile 进行以下更改:

...
# Comment out:
#PLOPT = -DQCL_PLOT
#PLLIB = -L/usr/X11/lib -lplotter
...
# Comment out:
#RLOPT = -DQCL_USE_READLINE
#RLLIB = -lreadline
#RLLIB = -lreadline -lncurses
...
# Comment out:
#CXX = g++
#CPP = $(CC) -E
#CXXFLAGS = -c $(ARCHOPT) $(DEBUG) $(PLOPT) $(RLOPT) $(IRQOPT) $(ENCOPT) -I$(QCDIR) -DDEF_INCLUDE_PATH="\"$(QCLDIR)\""
#LDFLAGS = $(ARCHOPT) -L$(QCDIR) $(DEBUG) $(PLLIB) -lm -lfl -lqc $(RLLIB) 

# Add:
CXX = /usr/local/Cellar/gcc/5.2.0/bin/g++-5
CPP = $(CC) -E
CXXFLAGS = -c $(ARCHOPT) $(DEBUG) $(PLOPT) $(RLOPT) $(IRQOPT) $(ENCOPT) -I$(QCDIR) -DDEF_INCLUDE_PATH="\"$(QCLDIR)\""
LDFLAGS = $(ARCHOPT) -L$(QCDIR) $(DEBUG) $(PLLIB) -lm -ll -lqc $(RLLIB) -lc++
...

现在您应该可以按照说明构建主应用程序了:

$ make clean; make; make install

【讨论】:

  • 感谢您的回答 Dunnie,但我仍然收到错误消息。当我尝试执行主 Makefile 时,它​​说:/scratch/ppham/local/bin/flex:没有这样的文件或目录。我应该在 Makefile 中更改此路径吗?另外它说 *** [lex.cc] Error 1,我不知道那是什么意思。
  • 你知道你是否安装了 flex 吗?我相信它是 Xcode 命令行工具的一部分。如果您还没有它们,请尝试使用命令 xcode-select --install 安装它们。
  • 我安装了命令行工具,重启后还是不行。它说: bison -t -d -o yacc.cc qcl.y mv yacc.*?h yacc.h /scratch/ppham/local/bin/flex -olex.cc qcl.lex make: /scratch/ppham/local /bin/flex: 没有这样的文件或目录 make: *** [lex.cc] 错误 1
猜你喜欢
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2020-01-19
  • 2020-03-01
  • 2016-07-13
  • 1970-01-01
  • 2014-11-19
相关资源
最近更新 更多