今天编译lib库时,碰到了vs2008的一个错误:
error PRJ0021错误的结果1(从“ d :vs2008/VC/bin/cl.exe 返回)
很蛋疼的是竟然没有提示在哪个c或cpp文件有错误。
用二分法定位到版本,然后回退一个个文件。
最后终于定位到问题点:
printf("…… %p ……\n",LINE,…);
原来是忘了添加__LINE__的打印格式,改成下面就编译通过了:
printf("…… %d %p ……\n",LINE,…);
原来是把__LINE__用%p打印会导致VS编译lib库在链接时失败,我靠,vs检查也太严格了,搜了下是c/c++下“常规”(或general)里有个wp64(检测64位可移植性问题)打开了,就检查的严格点——算了,严格就严格点吧。
但是坑爹的不是严格,关键是不告诉你出错的地方!这是最坑爹的!