2016-10-30 30 views
0

私はcmakeを使用しています。私は.cppファイルを持っているとしましょう。 cmakeでこのcppファイルをアセンブリコードにコンパイルしてから、他の操作を行い、その後に生成されたアセンブリから実行可能ファイルを作成することは可能ですか?cmakeアセンブリファイルを生成し、それを実行可能ファイルにコンパイルします

更新: 基本的にHello.cppをHello.sにコンパイルします(後でそれを変更してオブジェクトファイルを作成します)。しかし、私は(それはちょうどHello.a静的ライブラリを作成します)そのコード付きのasmファイルを生成することはできません:あなたは唯一の-Sオプションを使用してアセンブリを生成するためにGCCを伝えることができ

add_library(Tutorial Hello.cpp) 
set_target_properties(Tutorial PROPERTIES COMPILE_FLAGS "-S") 
install (TARGETS Tutorial DESTINATION bin) 
+1

[cmakeでasmファイル生成後にシェルコマンドを呼び出す]の可能な複製(http://stackoverflow.com/questions/41987775/call-shell-command-after-asm-file-generation-in-cmake) – Florian

答えて

1

CMakeは、常に「アセンブリファイルの規則」を生成します。それでは、あなたが持っているとしましょう:

file(WRITE main.cpp "int main() { return 0; }") 
add_executable(MyMain main.cpp) 

あなたが好きターゲットmain.sまたはmain.cpp.sためmakeを呼び出すことができます。

> make main.cpp.s 
Compiling CXX source to assembly CMakeFiles/MyMain.dir/main.cpp.s 

しかし、あなたはすべてを自動化したい場合は、あなたの他の質問に私の答えを参照してください。

0

中間ファイルを-save-tempsに保存するようにGCCに指示することもできます。

+0

私はリンクする前にasmファイルを変更したいので、 '-save-temps'は私にとっては大丈夫です。 – loz

+0

そして、 '-S'を使ってgccに渡してください。あなたは正確に何を達成しようとしていますか?おそらく、あなたのソースコードに直接必要なものを行う方法があります。 –

+0

私はこれをcmakeで実装しようとしています。それは端末で働いています。私は '-S'でasmファイルを作成しますが、私はasmファイルを変更できますし、コンパイルすることもできます。私の問題は、私はcmakeでこれを実装することができないということです。 – loz