注释也会影响编译吗
c4droid吧
全部回复
仅看楼主
level 9
sahban 楼主
写了两个文件 main.cpp 和 include.cpp,
include.cpp 里包含了一些头文件,包括SDL2的,标准库的,还有自己写的插件。
main.cpp 里包含了include.cpp,之后是程序的主逻辑部分。然而蛋疼的是,SDL2.h貌似必须直接在main.cpp里包含,不然就是一大堆"undefined reference"。我在两个文件都包含了SDL2.h,然后把main.cpp里的包含语句给注释掉了,程序正常运行。但是如果把注释掉的包含语句删了,编译就不成功。从而得出结论: //#include "SDL/SDL2.h" 会对编译造成影响。
哪位大神知道原因吗?
2017年07月03日 13点07分 1
level 9
sahban 楼主
补充一些发现:
//#include "SDL/SDL2.h" 通过
//#include 通过
//lll#include "SDL/SDL2.h"ppp 通过
/*#include "SDL/SDL2.h"*/ 通过
string str("#include "); 这特么也通过了
//#finclude "SDL/SDL2.h" 失败
//
#include "SDL/SDL2.h" (#
include 和路径间有两个空格) 失败
就像有东西直接在main函数所在源文件里查找"
#include "SDL/SDL2.h"或"#
include " 这两个字符串,不管它被注释还是在字符串里,有就给你编译,没有拉倒。
2017年07月03日 14点07分 2
level 9
sahban 楼主
不知道这是SDL的什么机制,不过看起来流。氓+智。障
2017年07月03日 14点07分 3
level 14
让我来解释吧,c4是通过主程序,也就是cpp/c的文件中出现#include <SDL/SDL.h>之类的字符串(无论是否被注释)来自动添加链接参数的,注意这是是自动的,如果你不想在主程序放这个头文件,你就需要手动修改编译参数,添加相应的链接库和路径。
2017年07月03日 18点07分 4
1