0

私が持っている質問は、ビルド出力に別のディレクトリを使用しようとすることを扱っています。特に、次のディレクトリ/ファイル構造があります。

src/
   Example/
      Hello.gyp
      HelloWorld.cpp
      HelloWorld.h
      Util.h
bld/
   Example/

Hello.gyp は次のようになります。

{
   'targets': [
      {
         'target_name': 'generated_code',
         'type': 'none',
         'actions': [
            {
               'action_name': 'cpp_compile',
               'inputs': [
                  'HelloWorld.cpp',
               ],
               'outputs': [
                  'a.out',
               ],
               'action': [
                  'g++', '<(_inputs)',
               ],
            },
         ],
      },
   ],
}

私がやりたいことはmv、忍者を使用して bld/Example/a.out を生成することです (のようなことはしません)。私は次のことを試しました:

(1)

% cd src/Example
% gyp Hello.gyp --depth=. --generator-output=../../bld/Example -f ninja
% cd ../../bld/Example
% ninja -C out/Default
ninja: Entering directory `out/Default'
[1/1] ACTION generated_code: cpp_compile_b5a6de50eda755567ffb7e384fc76492
% ls
out
% ls ../../src/Example/
Hello.gyp  HelloWorld.cpp  HelloWorld.h  Util.h  a.out

としても

(2)

% cd bld/Example
% gyp ../../src/Example/Hello.gyp --depth=. -f ninja
% ninja -C out/Default
ninja: Entering directory `out/Default'
[1/1] ACTION generated_code: cpp_compile_fb764512ff3485761831ee0d8df0b433
% ls
out
% ls ../../src/Example
Hello.gyp  HelloWorld.cpp  HelloWorld.h  Util.h  a.out

a.out は bld/Example ではなく src/Example にあるため、どちらのアプローチも機能しません。問題は、忍者がbld/Example (コマンドが実行される場所)内で実行するのではなく、 cdsrc/Exampleに実行して実行することです。では、bld/Example に a.out を含めるには (bld/Example から実行するのと同じように)、どうすればよいでしょうか?g++ninjag++ ../../src/Example/HelloWorld.cpp

ありがとう。

4

1 に答える 1

1

-Goutput_dir=bld/Examplegyp に渡してみてください。

于 2015-04-09T04:26:36.340 に答える