LinuxDev 板


LINE

※ [本文转录自 C_and_CPP 看板 #1Oc4I3eq ] 作者: whatai (多多) 看板: C_and_CPP 标题: [问题] G++ 无法正常编译 时间: Mon Feb 6 17:40:14 2017 再次更新 询问其他朋友 得到的答案是可能是ccache造成的 我在编译之前先使用ccache --clear 就可以正常报错了 (懒人包:遇到的问题是 "程式码有错 但是编译会成功") 但是也只有这一次是正常报错 将程式改回正常状态 编译成功後 再次加入错误的程式码还是会编译成功 看来只能每次编译前都加ccache --clear? 但是清除ccache後编译速度很慢 而且感觉有点在避问题 请问有谁知道该如何修正这问题的吗? ----------------------------- 新增影片 https://www.dropbox.com/s/oadtso6opxzdkbg/make_error.mov?dl=0 开发平台(Platform): (Ex: Win10, Linux, ...) linux fedora16(32bit) 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) G++ 额外使用到的函数库(Library Used): (Ex: OpenGL, ...) none 问题(Question): 最近在开发专案时发现 我上的linux有机会发生不正常编译的问题 例如我今天写好程式 也编译"成功" 但是运行後发现这是旧版本 原本以为是没有clean造成的问题 但是clean之後再次编译 运行後还是旧版本 这时候我直接在.cpp档中直接加入垃圾 例如 nvjenhj rjhsnk hbrieh 等等无意义的字串 这时候编译理论上会回报错误 但是很神奇的她编译成功了 而且运行後发现还是旧版本 因为程式码的空间是mount上去的 原本以为会不会有什麽同步上的问题 但是用cross-compiler(例如arm-linux-XXX mipsel-linux-XXX ba-linux-XXX) 来编译每一个都是正常回报错误 拿掉垃圾後每个cross-compiler都是编译成功 编译出来版本也正常 因此目前我排除mount的问题以及程式码本身的问题 但加回垃圾用g++编译还是会编译成功(实际上应该要失败) 後来问题追到makefile / mk 档上 後来发现只要改一个地方就可以修正这问题 如下: INCLUDE += -I$(SRC_DIR) INCLUDE += -I$(SRC_DIR)/AAAA INCLUDE += -I$(SRC_DIR)/BBBB 只要改成(如下) INCLUDE += -I$(SRC_DIR)/ INCLUDE += -I$(SRC_DIR)/AAAA INCLUDE += -I$(SRC_DIR)/BBBB 如上 只要多一个" / " 就可以解决 但是如果 多几个字元 例如 -I./$(SRC_DIR)/ 可能又会发生一样的问题 问题有点难以形容 询问主管也说没遇过 但这问题我已经是第3次发生了 每次发生都是改mk档 直到可以正常报错为止 但是因为不同的cross-compiler是吃同一份mk档 因此mk档的写法应该也没有问题 (有另外的mk档负责cross-compiler设定) 不知道有没有哪位大大可以说明一下原因以及真正解法 毕竟这是一个不确定因素 哪时候会在遇到也不知道 ps. 没办法换linux 因为是公司内部的linux没办法说换就换 预期的正确结果(Expected Output): 编译错误(没错 我是要编译失败) 错误结果(Wrong Output): 编译成功 程式码(Code):(请善用置底文网页, 记得排版) 有需要可以提供完整的makefile/mk档 以及编译框架的说明(站内信提供) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.55.46
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1486374019.A.A34.html
1F:推 nick5130: 先make clean再make试试看 虽然治标但是写个shell就好了 02/06 21:24
2F:推 nick5130: 如果project太大 我就会去删掉编出来的so或a或o 02/06 21:28
3F:→ nick5130: 问题应该是g++并不知道你的档案有更动 所以不会重编 02/06 21:29
4F:→ nick5130: 治本的方法要看看版上有没有人可以提供了 XD 02/06 21:29
5F:→ descent: makefile 可能没写好, 不过你的 makefile 好像很复杂, 02/06 21:40
6F:→ descent: 可能不好查 02/06 21:40
7F:推 herman602: 你是在编译Android SDK? 02/06 21:55
不是 是公司内部的library 不过因为必须要可以跨平台 所以同一份code也可以编android/ios/windows
8F:推 Bencrie: 直接下 make -B 强迫重编译 02/06 22:25
9F:→ whatai: 後来改成每次编译前都有clean还是一样 -B等等到公司测测 02/07 09:42
10F:→ whatai: 看看 02/07 09:42
make -B试过了也没有用 拍了部影片 应该比较可以看得懂问题所在 https://www.dropbox.com/s/oadtso6opxzdkbg/make_error.mov?dl=0 一开始程式码中就已经加入垃圾 接着make clean再make >> 编译成功 修改相关mk档 make clean再make >> 编译成功 再次修改相关mk档 make clean再make >> 编译失败(这才是我要的结果) 问题点在於每次mk档修改位址都不一样 但理论上除非语法错误 否则加入垃圾的程式无论如何都应该编译失败 但是前两次却是编译成功的 这会造成我无法判断新的程式是否有真的被编译 而不是不知道哪个版本的程式 而且开发/维护过程中也许不小心语法错误可能也不会发现 问过其他人 是说有可能是环境变数造成的 但应该都是使用预设 没去动到 另外我在想g++实际上是不是有其他暂存区会存放编译出来的.o档 因此在某些情形下会读到旧的.o才导致这问题的?? 还请其他好心的大爷们 救救我这可怜的小工程师阿 QAQ ※ 编辑: whatai (60.251.110.174), 02/07/2017 11:42:37



※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: whatai (60.251.110.174), 02/07/2017 11:54:56 ※ 编辑: whatai (60.251.110.174), 02/07/2017 11:57:09
11F:推 longlongint: 有用到 hard link 吗 02/07 22:27
12F:→ whatai: 没有 02/08 00:17
※ 编辑: whatai (60.251.110.174), 02/08/2017 11:05:52 ※ 编辑: whatai (60.251.110.174), 02/08/2017 11:06:11 ※ 编辑: whatai (60.251.110.174), 02/08/2017 11:10:59
13F:→ fatrabitree: 系统时间有对吗? 会不会编辑时间比.o还早 02/08 23:10
14F:→ whatai: 这我有对过 没有问题 02/08 23:15







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP