我有一个多文件c ++项目,在Makefile的帮助下构建。 CC
和CXX
相对来说是gcc
和g++
。现在我需要在llvm(lli)下尝试这个项目。
我已经取代了
CC = gcc
CXX = g++
LD = ld
与
CC = clang
CXX = clang++
LD = clang++
并将-emit-llvm
添加到cflags:
CFLAGS_DEBUG = $(CFLAGS) -g -emit-llvm
...
CFLAGS_RELEASE = $(CFLAGS) -O2 -emit-llvm
然后我调用了make。构建了对象文件,但在将它们收集到应用程序中时,我收到了这个错误:
obj / Debug /../../ XX / YY.o:文件无法识别:文件格式无法识别
collect2:ld返回1退出状态
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
那么,我必须如何为LLVM运行时解释器(lli)正确构建这个项目?
答案 0 :(得分:5)
你应该通过llvm-link链接,而不是通过clang ++