cmake交叉编译FindXXX路径设置
时间: 2023-07-12 18:46:19 浏览: 158
对于交叉编译时,需要设置FindXXX模块路径来找到对应的库和头文件。一种常见的方式是在CMakeLists.txt文件中设置以下变量:
- CMAKE_SYSROOT:交叉编译工具链的根目录,包含交叉编译工具链、库和头文件等。
- CMAKE_FIND_ROOT_PATH:查找第三方库时的搜索路径,包含交叉编译工具链、库和头文件等。
- CMAKE_FIND_ROOT_PATH_MODE_PROGRAM、CMAKE_FIND_ROOT_PATH_MODE_LIBRARY、CMAKE_FIND_ROOT_PATH_MODE_INCLUDE:指定搜索路径的优先级,一般设置为ONLY,表示只在指定路径中搜索。
例如,假设交叉编译工具链的根目录为/usr/local/arm-linux-gnueabihf,第三方库安装在/usr/local/arm-linux-gnueabihf/usr/local/lib和/usr/local/arm-linux-gnueabihf/usr/local/include下,则可以在CMakeLists.txt文件中设置以下变量:
```
set(CMAKE_SYSROOT /usr/local/arm-linux-gnueabihf)
set(CMAKE_FIND_ROOT_PATH /usr/local/arm-linux-gnueabihf/usr/local)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
```
这样,CMake就能够在指定的路径中找到所需的库和头文件,进行交叉编译。
阅读全文