2012-04-25 11 views
1

Intel 11.0コンパイラを搭載したLinuxマシンでCMake 2.8.7を使用しています。私はWindowsとLinuxマシンの両方でこのプロジェクトを構築したいので、初めてCMakeを使用しようとしています。ifakeコンパイラでCMakeを使用する

私も最初の単純なアプローチを使用しての

とは、標準的なHello Worldの例を使用: 私のsrc/HelloWorld.f90:

!Test helloworld in Fortran using Cmake 
program hello 
    print *, "Hello World!" 
end program hello 

私の主なCMakeLists.txt:

# States that CMake required version must be greater than 2.8.7 
cmake_minimum_required(VERSION 2.8.7) 
enable_language (Fortran) 
project(helloworld Fortran) 
add_subdirectory(src) 
SET_TARGET_PROPERTIES(helloworld PROPERTIES LINKER_LANGUAGE FORTRAN) 

マイSRCを/CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.7) 

# Include the directory itself as a path to include directories 
set(CMAKE_INCLUDE_CURRENT_DIR ON) 

# For a large number of source files you can create it in a simpler way 
# using file() function: 
file(GLOB helloworld_SOURCES *.f90) 

CMAKE_FORというエラーが表示されますTRAN_LINK_EXECUTABLE変数がありません。私はAbinader's CMake tutorial#1を見ましたが、今まで成功していませんでした。

どのような提案ですか??前もって感謝します !

+0

こんにちは!あなたはその答えを見つけましたか?私はifortにもいくつかの問題がありますが、Windowsとは異なるコンテキストがあります。Windows。 ;-)それは、インテルのFortranコンパイラに対するCMakeのサポートがあまり良くないと思われます。:-( –

答えて

0

おそらく、大文字の "FORTRAN"がリンカ言語を設定するときに問題になります。 enable_language文のように "Fortran"として記述してください。 CMakeは言語から使用する変数を派生し、CMakeはCMAKE_Fortran_LINK_EXECUTABLEの代わりにCMAKE_FORTRAN_LINK_EXECUTABLEを探します。

+0

CMAKE_Fortran_LINK_EXECUTABLEを使用しましたが、CMakeはまだ文句を言うのですが、Fortranにはいくつかのフラグを指定する必要がありますか? –

0

私はcmakeと一緒にfortranを使ったことはありませんが、ここではいくつかの問題があります。

まずは:helloworldのターゲットはどこですか? projectはターゲットではありません。

第2に:helloworld_SOURCES変数を使用していますか?

さらに定期的にお試しください。それは必要ありませんとしても、メイン1からSET_TARGET_PROPERTIES(helloworld PROPERTIES LINKER_LANGUAGE FORTRAN)を削除

add_executable(helloworld ${helloworld_SOURCES}) 

:あなたのsrc/CMakeLists.txtにして、ファイルの末尾に行を追加します。

最後の助言:file(GLOB)を使用しないでください。すべてのファイルのリストを手動で定義する方がよいでしょう。

関連する問題