我想寫一個cmake列表爲我的Fortran項目與一個外部模塊,並且都必須與外部庫沒有任何cmake查找(findlib )包。到目前爲止,我的CMakeLists.txt看起來是這樣的:cmake for Fortran程序與模塊和外部庫
cmake_minimum_required (VERSION 2.6)
project (Project 1)
enable_language (C Fortran)
set(extern_INCLUDE /home/path/lib/libdir/include/)
set(extern_LIB /home/path/lib/libdir/lib)
include_directories(${extern_INCLUDE})
link_directories (${extern_LIB})
add_library(mymodule STATIC mymodule.f90)
set(main-source_SRC main-source.f)
add_executable(main-source ${main-source_SRC})
#the name of the external library located in /home/path/lib/libdir/lib is libexternlib.so
target_link_libraries(main-source mymodule externlib)
一個libmymodule.a創建和絕對不是必要的(或共享一個爲此事)。我不想生成它們。我怎樣才能避免它的產生,並仍然編譯mymodule,生成.o和.mod以便能夠與主程序和外部庫鏈接?相當於ifort -c mymodule和ifort to all .o。
謝謝,但它抱怨說它無法找到main-source/usr/bin/ld:找不到-lmymodule。 – Ivan 2013-02-14 21:14:07
對不起,但我沒有進一步的想法。但是你嘗試設置(CMAKE_VERBOSE_MAKEFILE「開」)。這將打印執行進一步調試的命令。 – Holger 2013-02-14 21:30:20
我認爲這會出錯,因爲Fortran模塊與包含文件不同。您應該可以通過將'include_directories'和外部模塊作爲'$ {extern_INCLUDE}/mymodule.f90'包含在可執行文件中來修復它。 – sigma 2013-02-17 22:56:59