首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac10.11上安装QCL (量子计算语言)时出错

在Mac10.11上安装QCL (量子计算语言)时出错
EN

Stack Overflow用户
提问于 2016-02-20 12:25:25
回答 1查看 413关注 0票数 3

我正在尝试从本源安装QCL-0.6.4,但当我在终端中使用make命令时,一直会遇到错误。

我加入了这篇关于在OSX上安装QCL的文章,但是在尝试调整Makefile时,我总是遇到以下错误:

代码语言:javascript
复制
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];

如果能在这方面提供任何帮助,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 11:07:22

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

首先,Xcode目前使用苹果的LLVM编译器作为默认的C++编译器。然而,这不支持GCC的一些扩展,例如对非POD可变长度数组的支持.

为了解决这个问题,我安装并编译了GCC:如果您还没有安装自制软件,那么安装最新的GCC编译器:

代码语言:javascript
复制
$ brew install gcc

在编写本报告时,这将安装GCC版本5.2.0。这应该可以解决你最初的问题,但你会立即打击他人!

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

代码语言:javascript
复制
...
# Add:
CXX = /usr/local/Cellar/gcc/5.2.0/bin/g++-5
CXXFLAGS = $(ARCHOPT) -c -pedantic -Wall $(DEBUG) $(PRGOPT)
...

然后重建libqc.a

代码语言:javascript
复制
$ cd qc; make clean; make

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

最后,使用以下更改修改主Makefile <base_dir>/Makefile

代码语言:javascript
复制
...
# 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++
...

现在,这应该允许您按照说明构建主应用程序:

代码语言:javascript
复制
$ make clean; make; make install
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35523214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档