0

There is a cpp sources, which use fortran functions. Also I use cmake for my project, but I cant link it. What I do wrong?

main.cpp file:

#include <stdio.h>
extern "C" {
void showm(void);
}
int main (void) {
showm();
return 0;
}

fort.f90 file:

subroutine showm
print *, "fort "
end subroutine showm

I use cmake with project:

cmake_minimum_required(VERSION 3.4)
project(main)
enable_language(CXX)
enable_language (Fortran)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
set(FORTRAN_SOURCES fort.f90)
add_library(F_OBJECTS_LIB ${FORTRAN_SOURCES})
add_executable(main ${SOURCE_FILES})
target_link_libraries(main F_OBJECTS_LIB)

So the text of error is:

/home/mk/clion-2016.1.1/bin/cmake/bin/cmake --build /home/mk/.CLion2016.1/system/cmake/generated/proba- c5f6dd60/c5f6dd60/Debug --target all -- -j 2
[ 50%] Built target F_OBJECTS_LIB
Scanning dependencies of target main
[ 75%] Building CXX object CMakeFiles/main.dir/main.cpp.o
[100%] Linking CXX executable main
CMakeFiles/main.dir/main.cpp.o: In function `main':
/home/mk/Рабочий стол/proba/main.cpp:4: undefined reference to `showm()'
collect2: error code 1
Max
  • 1

0 Answers0