После нескольких тестов я наконец заставляю его работать. Так что проблема должна быть с настройками библиотеки.
В начале этого проекта я много искал о настройке библиотеки openmp в Android проекте. И я нашел много разных версий настроек. (например, установить «cppFlags», изменить в cmakelist и т. д. c). Я добавляю их все вместе. Это может привести к некоторым конфликтам
Поэтому я удаляю все настройки и использую только аргументы в cmakelist:
find_package(OpenMP QUIET)
if(OpenMP_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
else()
message(WARNING "OpenMP not found.")
endif()
И, наконец, я получаю правильный вывод:
int num_thread = omp_get_num_procs();
LOGI("openmp available : %d thread(s)." , num_thread);
omp_set_num_threads(4);
omp_set_nested(0);
#pragma omp parallel
{
LOGI("1. Hello world (%d) / (%d)", omp_get_thread_num(),omp_get_num_threads() );
}
2020-01-17 16:18:20.694 21594-21624/? I/MarkerTracker-dev: openmp available : 4 thread(s).
2020-01-17 16:18:20.694 21594-21624/? I/MarkerTracker-dev: 1. Hello world (0) / (4)
2020-01-17 16:18:20.694 21594-21736/? I/MarkerTracker-dev: 1. Hello world (3) / (4)
2020-01-17 16:18:20.694 21594-21734/? I/MarkerTracker-dev: 1. Hello world (1) / (4)
2020-01-17 16:18:20.695 21594-21735/? I/MarkerTracker-dev: 1. Hello world (2) / (4)