Привет всем и благодаря вашей помощи,Написать CMake Найти NetCDF для библиотеки C и Fortran
Я новичок в CMake, и я пытаюсь написать библиотеку найти для библиотеки C и Fortran NetCDF. Проблема заключается в возможном разном местоположении и версии fortran и C netcdf.
Для Fortran библиотеки я искать netcdf.mod (включают в себя модуль) и libnetcdff.so (динамическую библиотеку) вместо того, чтобы для библиотеки C Я ищу netcdf.h и libnetcdf.so.
В Интернете я нашел волшебный код, найти правильно NetCDF C библиотеки:
find_path (NETCDF_INCLUDES_C netcdf.h HINTS NETCDF_DIR NETCDF_DIR)
message(" inc = ${NETCDF_INCLUDES_C} ")
find_library (NETCDF_LIBRARIES_C NAMES netcdf)
message(" lib = ${NETCDF_LIBRARIES_C} ")
и два пути правильно. Я пытаюсь ответить код Fortran:
find_path (NETCDFF_INCLUDES_F90 netcdff.mod HINTS NETCDFF_DIR NETCDFF_DIR)
message(" inc ff = ${NETCDFF_INCLUDES_F90} ")
find_library (NETCDFF_LIBRARIES_F90 NAMES netcdff HINTS NETCDFF_DIR)
message(" lib ff= ${NETCDFF_LIBRARIES_F90} ")
mark_as_advanced(NETCDF_LIBRARIES_F90)
но оба пути F90 пуст, вероятно, потому, что я не понимаю, как CMake найти библиотеку C. Через МОДУЛЬ ОКРУЖАЮЩЕЙ СРЕДЫ я загрузить обе библиотеки и загрузка модуля, окр вар:
$NETCDFF_HOME $NETCDFF_INC $NETCDFF_INCLUDE $NETCDFF_LIB
$NETCDF_HOME $NETCDF_INC $NETCDF_INCLUDE $NETCDF_LIB
Я полагаю, что неправильно CMake искать переменную NETCDF_DIR и в этот поиск netcdf.h но в моем CmakeList и в моем ENV, что переменная не определена ,
Как CMake найти C var? и как я могу ответить на поиск fortran lib?
Благодаря мне помочь
С наилучшими пожеланиями
Эрик
ли вы на самом деле означает 'netcdff.mod' или вы хотите' netcdf.mod'? Кроме того, я действительно не знаю 'cmake', но если похоже, что вы пытаетесь сохранить в' NETCDFF_INCLUDES_F90', но тогда ваше сообщение использует '$ {NETCDF_INCLUDES_F90}' (т.есть дополнительный F в первом) –
благодаря вашему ответу, в копии и вставке есть некоторые ошибки. Правильный файл модуля - netcdf.mod, а сообщение - в NETCDFF_INCLUDES_F90, я исправляю свой предыдущий пост. – epascolo
какая версия CMake вы используете? – fedepad