有人可以解释这个现象吗?
#include <iostream>
int main() {}
编译它,得到:
g++ main.cpp -Dn=1
<command-line>:0:3: error: expected unqualified-id before numeric constant
这是完整的video。我想知道这些储备物的完整清单,以及它们是什么。我的环境是cygwin
:
g++ --version
g++ (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
答案 0 :(得分:7)
-Dn=1
将n
定义为包含iostream
之前的宏,这意味着它将n
中iostream
的每次出现重新定义为1,即打破很多东西。
要解决此问题,请选择其他宏名称,或在包含之后将#define
移至文件内部。