标记“(”之前缺少二元运算符

use*_*697 -7 c++ g++ preprocessor-directive

错误:

cxx.cpp:5:13: error: missing binary operator before token "("
cxx.cpp:7:15: error: missing binary operator before token "("
Run Code Online (Sandbox Code Playgroud)

代码:

  #if definied(_WIN32) || definied(_WIN64) || definied(__WIN32__)
        const char * PORT = "COM1";
    #elif definied(__linux) || definied(__linux__) || definied(linux)
        const char * PORT = "dev/ttyS1";
    #else 
        const char * PORT = NULL;
    #endif
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 编译器正在等待新的defined()调用?
  2. 它可以检测到任何 linux(和变体)或 windows 版本?

提前致谢。

Mys*_*ial 5

你拼错了defined

#if definied(_WIN32) || definied(_WIN64) || definied(__WIN32__)

#elif definied(__linux) || definied(__linux__) || definied(linux)
Run Code Online (Sandbox Code Playgroud)

应该:

#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__)

#elif defined(__linux) || defined(__linux__) || defined(linux)
Run Code Online (Sandbox Code Playgroud)