title: VSCode C++ c_cpp_properties.json "defines" does not define the symbol on ubuntu
body: <p>I have a <code>main.cpp</code> thus:</p>
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(){
  #if defined(_LINDEBUG)
  #if defined(VSCODE)
      printf(&quot;VSCODE defined&quot;\n);
  #else
      printf(&quot;VSCODE not defined\n&quot;);
  #endif
  #endif
  }
  </code></pre>
  <p>My <code>c_cpp_properties.json</code> file in <code>.vscode/</code> folder is thus:</p>
  <pre><code>{
      &quot;configurations&quot;: [
          {
              &quot;name&quot;: &quot;Linux&quot;,
              &quot;includePath&quot;: [
                  &quot;${workspaceFolder}/**&quot;,
                  &quot;${default}&quot;
              ],
              &quot;defines&quot;: [&quot;VSCODE&quot;],
              &quot;compilerPath&quot;: &quot;/usr/bin/gcc&quot;,
              &quot;cStandard&quot;: &quot;gnu11&quot;,
              &quot;cppStandard&quot;: &quot;c++17&quot;,
              &quot;intelliSenseMode&quot;: &quot;clang-x64&quot;
          }
  }
  </code></pre>
  <p>I compile and link this via <code>make</code> thus:</p>
  <pre><code>g++ -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp   -c -g -D_LINDEBUG -std=c++14 -MMD -MP -MF &quot;build/Debug/GNU-Linux/_ext/511e4115/main.o.d&quot; -o build/Debug/GNU-Linux/_ext/511e4115/main.o ../src/main.cpp
  mkdir -p dist/Debug/GNU-Linux
  g++ -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp    -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/main.o  -lm -lpthread -ldl
  </code></pre>
  <p>I expected <code>VSCODE</code> to be defined via the <code>.json</code> file. <code>_LINDEBUG</code> is defined via the <code>make</code> compilation as <code>-D_LINDEBUG</code>. The net effect is that the output is:</p>
  <p><code>VSCODE not defined</code>.</p>
  <p>Is there a way to define some macros via <code>c_cpp_properties.json</code> file instead of via the <code>make</code> argument?</p>
  <hr />
  <p><code>tasks.json</code> is:</p>
  <pre><code>{
              &quot;label&quot;: &quot;lindbgbuild&quot;,
              &quot;type&quot;: &quot;shell&quot;,
              &quot;command&quot;: &quot;make&quot;,
              &quot;args&quot;: [
                  &quot;CONF=Debug&quot;,
                  &quot;-C&quot;,
                  &quot;./.vscode&quot;
              ],
              &quot;group&quot;: &quot;build&quot;,
              &quot;problemMatcher&quot;: []
  }
  </code></pre>
  <p><code>Makefile</code> exits in <code>.vscode\</code> folder that calls <code>Makefile-Debug.mk</code> that contains the actual <code>g++ ...</code> commands.</p>