clang++几个编译报错解决

build cmd: clang++ BmpIO.cpp jpeg.cpp

clang ver: 6.0_x86
vs ver: 2015_x86
win ver: 8.0_x64
// 兼容性报错1:


BmpIO-bd8060.o : warning LNK4217: 本地定义的符号 ___std_terminate 在函数 "int `p
ublic: __thiscall CBmpIO::~CBmpIO(void)'::`1'::dtor$2" (?dtor$2@?0???1CBmpIO@@QA
E@XZ@4HA) 中导入
// 编译指令:clang++ BmpIO.cpp jpeg.cpp
// 参考:1. http://blog.csdn.net/qq_31359295/article/details/72973666    << LLVM\Clang 在Windows下可运行的配置 >>
        2. http://blog.csdn.net/ShadowFlow/article/details/78507181     << clang忽略警告 >>
// 解决:1. clang-cl BmpIO.cpp jpeg.cpp
        2. clang++ BmpIO.cpp jpeg.cpp -Xclang -flto-visibility-public-std
        3. 去掉BmpIO析构函数里的fclose调用
// 兼容性报错2:
clang++.exe: warning: treating 'c-header' input as 'c++-header' when in C++ mode
, this behavior is deprecated [-Wdeprecated]
// 编译指令:clang++ BmpIO.cpp BmpIO.h jpeg.cpp
// 解决:不要加入.h编译
// 头文件找不到报错:
主要由于clang在win下主要包括mgwin编译版本和vs编译版本,vs版本的话,使用vs的头文件和库
,所以需要正确配置vs的头文件和库路径,以及windows头文件路径,这里由于使用了vs2012的路径,导致不匹配
clang -v
// _MSC_VER_报错
主要是库和头文件的vs版本和clang的编译vs版本不匹配导致,和头文件报错类似
解决:在用户环境变量里,配置include lib两个变量,其值可以参考vs工程属性配置里的值

你可能感兴趣的:(杂文)