.clang_complete和CMake?

Pep*_*epe 5 cmake clang-complete

我正在使用CMake生成我的Makefile但是我无法使用标准生成.clang_complete

make CC='~/.vim/bin/cc_args.py gcc' CXX='~/.vim/bin/cc_args.py g++' -B
Run Code Online (Sandbox Code Playgroud)

什么都没有产生......

树结构看起来像这样

Root
 |
 |_core
 |  |_src
 |  |  |_main.cpp
 |  |  |_CMakeLists.txt (1)
 |  |_inc
 |  |_CMakeLists.txt (2)
 |
 |_lib
 |  |_rtaudio
 |
 |_CMakeLists.txt (3)
Run Code Online (Sandbox Code Playgroud)

CMakeLists.txt(1)文件:

 include_directories("${Dunkel_SOURCE_DIR}/core/inc")

include_directories("${Dunkel_SOURCE_DIR}/lib/")
link_directories("${Dunkel_SOURCE_DIR}/lib/rtaudio")

add_executable(Dunkel main.cpp)

target_link_libraries(Dunkel rtaudio)
Run Code Online (Sandbox Code Playgroud)

CMakeLists.txt(2)文件:

subdirs(src)
Run Code Online (Sandbox Code Playgroud)

CMakeLists.txt(3)文件:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(Dunkel)
SUBDIRS(core)

set(CMAKE_CXX_FLAGS "-g")
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

xai*_*zek 4

看起来与不扩展波形符相反make cmake,因此它将 is 视为路径的一部分。要使其按预期工作,请使用cc_args.py脚本的绝对路径或在命令中进行两个简单的更改:

  1. 将波浪号替换为$HOME
  2. 将单引号替换为双引号。

更改后,您的命令应如下所示:

CXX="$HOME/.vim/bin/cc_args.py g++" cmake ..
Run Code Online (Sandbox Code Playgroud)

它应该有效。