Я пытаюсь скомпилировать бинарный файл Фортрана, который связывается с несколькими библиотеками, используя cmake
.
add_executable(myexe
${CMAKE_SOURCE_DIR}/source/myexe.cpp
${CMAKE_CURRENT_SOURCE_DIR}/API/F90/mod.f
${CMAKE_CURRENT_SOURCE_DIR}/API/F90/main.f)
set_property(TARGET myexe PROPERTY LINKER_LANGUAGE Fortran)
target_link_libraries(myexe mylib1 mylib2)
install(TARGETS myexe DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
mylib1
и mylib2
являются целями в одном проекте и компилируются без проблем.Однако компоновщик генерирует следующее предупреждение для myexe
:
ifort: warning #10145: no action performed for file '/path/to/libmylib1.a'
ifort: warning #10145: no action performed for file '/path/to/libmylib2.a'
и make install
завершается с ошибкой:
file INSTALL cannot find
"/path/to/myexe"
Я исследовал link.txt
, чтобы увидеть команду компоновщикаи я нахожу это:
/usr/local/bin/ifort -c -lc++11 CMakeFiles/myexe.dir/__/source/myexe.cpp.o CMakeFiles/myexe.dir/API/F90/mod.f.o CMakeFiles/myexe.dir/API/F90/main.f.o -o myexe -Wl,-rpath,/path/to/lib/install/ ../LIB1/libmylib.a ../LIB2/libmylib2.a
Что я могу сделать, чтобы исправить эту команду компоновщика и устранить мою ошибку?
Моя версия cmake:
cmake version 3.14.1