clang++几个编译报错解决

本文介绍了如何处理使用clang++编译过程中遇到的错误,通过cmd命令行编译BmpIO.cpp和jpeg.cpp文件时的问题及解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/qq_31359295/article/details/72973666    << LLVM\Clang 在Windows下可运行的配置 >>
        2. http://blog.youkuaiyun.com/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工程属性配置里的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值