编译llvm 3.1时,为什么会出错:'>'标记之前的预期主表达式

问题描述 投票:0回答:1

出于某种原因,我需要安装llvm 3.1或llvm 3.0,但是在make期间出现此错误。

[  5%] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
In file included from /home/ubuntu/llvm/utils/TableGen/AsmMatcherEmitter.cpp:103:0:
/home/ubuntu/llvm/include/llvm/ADT/PointerUnion.h: In member function ‘int llvm::PointerUnion3<PT1, PT2, PT3>::is() const’:
/home/ubuntu/llvm/include/llvm/ADT/PointerUnion.h:266:26: error: expected primary-expression before ‘>’ token
       return Ty(Val).is<T>();
                          ^
/home/ubuntu/llvm/include/llvm/ADT/PointerUnion.h:266:28: error: expected primary-expression before ‘)’ token
       return Ty(Val).is<T>();
                            ^
/home/ubuntu/llvm/include/llvm/ADT/PointerUnion.h: In member function ‘T llvm::PointerUnion3<PT1, PT2, PT3>::get() const’:
/home/ubuntu/llvm/include/llvm/ADT/PointerUnion.h:279:27: error: expected primary-expression before ‘>’ token
       return Ty(Val).get<T>();
                           ^'
/home/ubuntu/llvm/include/llvm/ADT/PointerUnion.h:279:29: error: expected primary-expression before ‘)’ token
       return Ty(Val).get<T>();
                             ^

我想llvm 3.0和gcc 7.0.0之间可能存在兼容性问题,因此我安装了gcc-4.6.3,并使用此cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/home/ubuntu/install -DCMAKE_CXX_LINK_FLAGS="-Wl,-rpath,$HOME/gcc463/install -L$HOME/gcc463/install" -G "Unix Makefiles" ../llvm进行配置。但是,仍然会出现相同的错误。有人知道为什么以及如何解决它吗?谢谢!!

出于某些原因,我需要安装llvm 3.1或llvm 3.0,但是在制作过程中出现此错误。 [5%]构建CXX对象utils / TableGen / CMakeFiles / llvm-tblgen.dir / AsmMatcherEmitter.cpp.o在...

c++ gcc llvm
1个回答
0
投票

尝试传递-std=c++98,或者如果不起作用,则单击-std=c++11。恐怕这可能是因为不同的C ++版本不兼容。

© www.soinside.com 2019 - 2024. All rights reserved.