Я использую большую базу кода, которая успешно скомпилировалась перед использованием make с make-файлом и cmake. Однако теперь, когда я пытаюсь использовать с ним openmp, я получаю ошибки
undefined reference to `omp_get_thread_num'
undefined reference to `omp_get_num_threads'
Я не думаю, что это проблема с файлом CMakeLists.txt, потому что я создал отдельный каталог и успешно собрал и скомпилировал программу helloworld OpenMP. Так что же вызывает эту ошибку?
Я отредактировал CMakeLists.txt в project/src/project, включив -fopenmp, чтобы он содержал строку
set(CMAKE_CXX_FLAGS "-Wall -pedantic -Wextra -fopenmp")
....
TARGET_LINK_LIBRARIES(PROJECT ${OpenMP_CXX_LIBRARIES} ${PROJECT_LINK_LIBS}).
В CMakeLists.txt уже есть строки
FIND_PACKAGE( OpenMP)
if(OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
include_directories(SYSTEM ${OpenMP_INCLUDE_PATH})
Подробнее здесь: https://stackoverflow.com/questions/298 ... -and-cmake