ccls icon indicating copy to clipboard operation
ccls copied to clipboard

cannot correctly recognize "-MT" option in compile_commands.json

Open xq114 opened this issue 4 years ago • 0 comments

Observed behavior

compile_commands.json

[
{
  "directory": "C:\\Users\\xq114\\_tmp\\xmake-test",
  "arguments": ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX64\\x64\\cl.exe", "-c", "/EHsc", "-nologo", "-MT", "-I", "C:\\Users\\xq114\\_tmp\\xmake-test\\src\\liba", "-I", "C:\\Users\\xq114\\_tmp\\xmake-test\\src\\libb", "-Fobuild\\.objs\\xmake-test\\windows\\x64\\release\\src\\main.cpp.obj", "src\\main.cpp"],
  "file": "src\\main.cpp"
},
{
  "directory": "C:\\Users\\xq114\\_tmp\\xmake-test",
  "arguments": ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX64\\x64\\cl.exe", "-c", "/EHsc", "-nologo", "-MT", "-I", "C:\\Users\\xq114\\_tmp\\xmake-test\\src\\liba", "-I", "C:\\Users\\xq114\\_tmp\\xmake-test\\src\\libb", "-Fobuild\\.objs\\xmake-test\\windows\\x64\\release\\src\\liba\\a.cpp.obj", "src\\liba\\a.cpp"],
  "file": "src\\liba\\a.cpp"
},
{
  "directory": "C:\\Users\\xq114\\_tmp\\xmake-test",
  "arguments": ["C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.28.29333\\bin\\HostX64\\x64\\cl.exe", "-c", "/EHsc", "-nologo", "-MT", "-I", "C:\\Users\\xq114\\_tmp\\xmake-test\\src\\liba", "-I", "C:\\Users\\xq114\\_tmp\\xmake-test\\src\\libb", "-Fobuild\\.objs\\xmake-test\\windows\\x64\\release\\src\\libb\\b.cpp.obj", "src\\libb\\b.cpp"],
  "file": "src\\libb\\b.cpp"
}]

main.cpp

#include <iostream>
#include "b.h"
#include "a.h"

using namespace std;

int main(int argc, char** argv)
{
    cout << add1(1) << " " << add2(2) << endl;
    return 0;
}

directory structure image

file not found issue image

When I replaced all -MT flags to /MT, it finally works fine.

Expected behavior

There should not be any difference whether -MT or /MT is used.

Steps to reproduce

  1. make the directories
  2. place the files
  3. fill main.cpp and compile_commands.json
  4. start vscode and open main.cpp

System information

  • ccls version (git describe --tags --long): commit 4cd308d7fd71bc82376520d9e042fe339f01b8ef
  • clang version: 12.0.0-rc3
  • OS: Windows 10
  • Editor: VS Code
  • Language client (and version): vscode-ccls 0.1.29

xq114 avatar Mar 12 '21 05:03 xq114