5

私はCMakeを使用してMakefileを生成していますが、標準を使用して.clang_completeを生成することはできません

make CC='~/.vim/bin/cc_args.py gcc' CXX='~/.vim/bin/cc_args.py g++' -B

何も生成されません...

ツリー構造は次のようになります

Root
 |
 |_core
 |  |_src
 |  |  |_main.cpp
 |  |  |_CMakeLists.txt (1)
 |  |_inc
 |  |_CMakeLists.txt (2)
 |
 |_lib
 |  |_rtaudio
 |
 |_CMakeLists.txt (3)

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)

CMakeLists.txt(2)ファイル:

subdirs(src)

CMakeLists.txt(3)ファイル:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(Dunkel)
SUBDIRS(core)

set(CMAKE_CXX_FLAGS "-g")

私はここで何が間違っているのですか?

4

4 に答える 4

4

make cmakeチルダを拡張しないのとは反対のように見えるので、パスの一部として扱います。期待どおりに機能させるには、スクリプトへの絶対パスを使用するかcc_args.py、コマンドで2つの簡単な変更を行います。

  1. チルダを。に置き換え$HOMEます。
  2. 一重引用符を二重引用符に置き換えます。

変更後、コマンドは次のようになります。

CXX="$HOME/.vim/bin/cc_args.py g++" cmake ..

そしてそれはうまくいくはずです。

于 2013-01-31T18:57:33.307 に答える
2

(ビルドディレクトリで)実行する必要があります

CXX='~/.vim/bin/cc_args.py g++' cmake ..

makeその後、通常どおりに実行します。これにより、プロジェクトをビルドするたびにcc_args.pyスクリプトが実行されることに注意してください。makeこれを無効にする場合は、再実行してcmakeください。

ファイル.clang_completeはビルドディレクトリに作成されます。必要に応じて移動してください。

Vim:CMakeを使用した.clang_completeの作成も参照してください。

于 2013-01-29T20:22:34.737 に答える
1

引用すると展開されない可能性があるため、では$HOME/.vim/bin/cc_args.pyなく使用することが重要です。~/.vim/bin/cc_args.py~

また、Pythonスクリプトの存在を次のように確認します。

$ ls -l $HOME/.vim/bin/cc_args.py
-rwxr-xr-x  1 myself  staff  2270 Sep 19 16:11 /home/myself/.vim/bin/cc_args.py

見つからない場合は、必要に応じてPythonスクリプトパスを調整します。

make cleanビルドディレクトリで実行します。

@xaizekが提案しているように、空のビルドディレクトリから始めます(ビルドディレクトリがソースディレクトリのサブディレクトリであると想定しています)。

CXX="$HOME/.vim/bin/cc_args.py g++" cmake ..

に続く:

make

この時点で、makeはプロジェクトをビルドしますが、を直接呼び出すのではなく、をcc_args.py呼び出します(これはを呼び出します) 。g++g++

しかし、私にとってこの部分は機能せず.clang_complete、ビルドディレクトリやその他の場所にファイルは作成されません。

実際、生成されたCMakeCache.txt / Makefileには「cc_args」が含まれていないためCXX、cmakeに渡す正しい変数名ではないと思われます。

.clang_complete終了したら、親ディレクトリにコピーします。

于 2017-10-06T12:32:11.097 に答える
0

これが私のために働いたものです

sudo chmod a+x $HOME/.vim/bin/cc_args.py
CXX="$HOME/.vim/bin/cc_args.py  g++"  sudo cmake ..
sudo make

そして、ls -aは私の.clang_completeファイルを表示しますが、それでも典型的なものです。

于 2016-05-13T09:42:36.407 に答える