cmake: find_package for architecture
cmake: find_package for architecture
交叉编译时,我习惯于使用工具链文件来指定(除其他外(CMAKE_SYSTEM_PROCESSOR
。
在 Ubuntu 和其他 Linux 发行版中,它似乎能够安装用于其他架构的库。例如,如果我在 x86-64 计算机上工作,并且想要为 64 位 ARM 安装libpng
,那么我将:
dpkg --add-architecture arm64
apt-get update
apt-get -y install libpng-dev:arm64
所以在此之后,我有了 arm64 的 libpng 二进制文件。这些似乎安装在/usr/lib/aarch64-linux-gnu
.
现在我的理解是,如果我尝试在我的 CMakeLists.txt 文件中查找libpng
(请参阅 libpng 的 CMake 编译选项(:
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIR})
target_link_libraries(example ${PNG_LIBRARY})
它将查找主机的软件包(在本例中为 x86-64(,而不是目标 (arm64(。
有没有办法告诉Cmakefind_package
目标架构?在理想情况下,find_package
会在搜索之前检查CMAKE_SYSTEM_PROCESSOR
。我想知道处理这种情况的最简单和最通用的方法,因为我正在链接几个库。
现在,我知道的唯一方法是对目标库的路径进行硬编码。
像FindPNG.cmake这样的模块使用find_path
和find_library
来查找所有内容。
您可以通过将CMAKE_LIBRARY_ARCHITECTURE
设置为aarch64-linux-gnu
来影响find_library
。尝试在工具链文件中设置CMAKE_LIBRARY_ARCHITECTURE
。
相关文章:
- 与卡特琳娜一起卷曲C++失败并得到"Undefined symbols for architecture x86_64"
- "Undefined symbols for architecture x86_64" 在 SDL 2 (macOS) 中
- cmake: find_package for architecture
- 编译 OpenBLAS C++项目会产生错误"Undefined symbols for architecture x86_64"
- 使用多个文件时出现"Undefined symbols for architecture x86_64"错误
- 无法在 Xcode 中使用 Boost,不断收到"Undefined symbols for architecture"错误
- 将某些功能与 main.cpp 分离时出现"undefined symbols for architecture"错误,该怎么办?
- Xcode 错误:"2 duplicate symbols for architecture x86_64"
- XCode 错误"Undefined symbols for architecture x86_64" C++
- 了解"Undefined symbols for architecture"错误
- 在单独的 c++ 文件中初始化矢量时出现"undefined symbols for architecture"错误
- 链接错误:QtCore.framework/Versions/4/QtCore for Architecture x86
- 在连接阶段诊断"contains undefined reference for architecture"
- 有错误"Undefined symbols for architecture x86_64"和"ld: symbol(s) not found for architecture x86_64"
- "Undefined symbols for Architecture x86_64 "未使用模板,可能存在语法错误
- Xcode 6 上针对目标 C 的错误'Undefined symbols for architecture x86_64 '
- "Undefined symbols for architecture x86_64"尝试包含另一个文件中的功能
- OpenCV 3 的"ld: symbol(s) not found for architecture x86_64"
- XCode 构建失败"undefined Symbols for architecture x86_64"
- Xcode 错误"not found for architecture" 。尝试不使用库的基本C++