$ make
clang++ -o build/blist.exe src/driver.cpp src/BList.h -O0 -g -Wall -Wno-unused-parameter -Wextra -Wconversion -Wold-style-cast -std=c++14 -pedantic -Wold-style-cast
clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated [-Wdeprecated]
clang: error: cannot specify -o when generating multiple output files
我的模板实施位于BList.cpp
,但BList.h
包含BList.cpp
。这就是我将标题作为对象传递的原因。我不知道如何设置clang来编译!
我的标题必须命名为" BList.h"根据我的教授。
这些参数与GCC编译,但不与Clang编译。
答案 0 :(得分:3)
该错误与在BList.cpp
中包含BList.h
无关(虽然这本身就是一种可疑的做法)。
问题是您将src/BList.h
传递给Clang,就像它是源文件一样。构建指令应该是:
clang++ -o build/blist.exe src/driver.cpp -O0 -g -Wall -Wno-unused-parameter -Wextra -Wconversion -Wold-style-cast -std=c++14 -pedantic -Wold-style-cast
您应该相应地更新您的makefile。