4

およびGNU/Linuxを使用してg++、C++、C、および Fortran で記述された多数のソース コード ファイルをコンパイルおよびリンクする簡単なスクリプトを作成しました。スクリプトの完全な内容は次のとおりです。このスクリプトはテスト済みで、うまく機能します。gccgfortran

g++ -c test-Q.cpp -I./boost/boost_1_52_0/ -g
 gcc -c paul2.c -g
 gcc -c paul2_L1.c -g
 gcc -c paul6.c -g
 gcc -c paul6_L1.c -g 
 gcc -c fit_slope.c -g
 gfortran -c getqpf.F -g
 g++ -o test-Q test-Q.o paul2.o paul2_L1.o paul6.o paul6_L1.o fit_slope.o getqpf.o -g -lgfortran

これをよりクロスプラットフォームにするために、Cmake を使用してスクリプトを書き直したいと思います。混合言語のコンパイルを処理するにはどうすればよいですか?

以下にリストされている次のテスト スクリプトは機能せず、一部のファイルのみを選択的にコンパイルします。

このタイプのコンパイルにより適した別のクロスプラットフォーム ビルド プロセスはありますか?

cmake_minimum_required (VERSION 2.6)
project (q-test)

include_directories(/media/RESEARCH/SAS2-version2/test-Q/boost/boost_1_52_0)

add_executable( q-test
test-Q.cpp
paul2.c
paul2_L1.c 
paul6.c 
paul6_L1.c 
fit_slope.c
getqpf.F
) # end
4

1 に答える 1

6

次のように、プロジェクトで Fortran を有効にする必要があります。

プロジェクト (q-test C CXX Fortran)

また、インクルード パスをハード コーディングする代わりに、find_package(Boost) を使用することもできます。

于 2012-11-19T22:09:38.530 に答える