Why does my code generated from MATLAB Coder fail to compile because of missing function definitions for "omp_init_nest_lock" and "omp_destroy_nest_lock"?
26 次查看(过去 30 天)
显示 更早的评论
Why does my code generated from MATLAB Coder fail to compile because of missing function definitions for "omp_init_nest_lock" and "omp_destroy_nest_lock"?
I am trying to compile the code on a Linux operating system and it fails because the compiler cannot find definitions for the mentioned functions. I do not know why these functions are appear in my code. I also noticed that the same code compiles on a different computer with a Windows operating system using Microsoft Visual Studio.
采纳的回答
MathWorks Support Team
2021-8-23
编辑:MathWorks Support Team
2021-8-26
This issue is typically encountered if the Linux computer on which the code is being compiled has an outdated compiler. The functions "omp_init_nest_lock" and "omp_destroy_nest_lock" are implementations of "OpenMP" specifications and they should be provided by the compiler. On a Linux computer, installing the recommended version of the GCC compiler should resolve this issue.
Information about supported compilers for the current MATLAB release can be found at the following link:
Information about supported compilers for the previous MATLAB releases can be found at the following link:
Note: this also addresses a similar issue on Ubuntu.
1 个评论
Ryan Livingston
2017-4-17
addresses a similar issue on Ubuntu.
更多回答(1 个)
cui,xingxing
2024-2-15
If you use the CMake tool to compile, then it should link to the OpenMP library. Add the following example to CMakeLists.txt.
FIND_PACKAGE( OpenMP REQUIRED)
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()
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!