首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Cmake:告诉find_package寻找32位库(而不是64位lib)

CMake是一个跨平台的开源构建工具,用于管理软件构建过程中的编译、链接和安装等操作。它使用CMakeLists.txt文件来描述项目的构建规则,并生成相应的构建系统文件(如Makefile、Visual Studio项目文件等)。

在使用CMake构建项目时,有时需要告诉find_package命令寻找32位库而不是64位库。为了实现这一目的,可以通过设置CMAKE_LIBRARY_ARCHITECTURE变量来指定寻找的库的架构。

具体步骤如下:

  1. 在CMakeLists.txt文件中添加以下代码:
代码语言:cmake
复制

set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu")

代码语言:txt
复制

这将告诉CMake在寻找库时使用32位架构。

  1. 在使用find_package命令寻找库之前,可以使用message命令输出CMAKE_LIBRARY_ARCHITECTURE变量的值,以确保已正确设置。
代码语言:cmake
复制

message("CMAKE_LIBRARY_ARCHITECTURE: ${CMAKE_LIBRARY_ARCHITECTURE}")

代码语言:txt
复制

这将在CMake构建过程中输出CMAKE_LIBRARY_ARCHITECTURE变量的值。

需要注意的是,具体的32位库的名称和路径可能因操作系统和库的版本而异,因此需要根据实际情况进行调整。

关于CMake的更多信息和用法,可以参考腾讯云的CMake产品介绍页面:CMake产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

cmake教程4(find_package使用)

使用cmake find_package 使用不同版本的opencv lib问题(opencv 安装在指定的目录,不是系统的目录) ---- 1. cmake find_package的基本原理 当编译一个需要使用第三方的软件时...find_package()命令首先会在模块路径中寻找Find.cmake,这是查找的一个典型方式。具体查找路径依次为CMake:变量${CMAKE_MODULE_PATH}中的所有目录。...为了能支持各种常见的和包,CMake自带了很多模块。...}/cmake) message("cmake_module_path: ${CMAKE_MODULE_PATH}") find_package(DEMO9LIB) if(DEMO9LIB_FOUND...使用cmake find_package 使用不同版本的opencv lib问题(opencv 安装在指定的目录,不是系统的目录) 下面在给出一个opencv的示例,opencv3.1安装在/home/

4.9K30

CMake学习笔记(三)——以笔者的Robosub竞赛为例

imageprocessing_fun SHARED ${LIB_IMAGEPROCESS_SOURCE}) 其中,FIND_PACKAGE(OpenCV REQUIRED)在系统中寻找OpenCV的安装路径...但对于OpenCV的FIND_PACKAGE指令,寻找路径是/usr/local/share/OpenCV/OpenCVConfig.cmake。...最低版本要求 CMAKE_MINIMUM_REQUIRED(VERSION 2.8) # 系统中寻找OpenCV的安装路径 FIND_PACKAGE(OpenCV REQUIRED) # 添加源文件中的...生成图像客户端目标文件,是基于之前自定义函数部分中的imageprocessing_fun的图像处理函数的,之前这些函数已经被处理为文件,被存储在工程生成路径下的lib路径中,所以指令LINK_DIRECTORIES...CMakeLists.txt文件如下: # CMake最低版本要求 CMAKE_MINIMUM_REQUIRED(VERSION 2.8) # 系统中寻找OpenCV的安装路径 FIND_PACKAGE

1.2K100

cmake:Windows编译支持HTTPS的curlfind_package查找CURL时需要注意的问题

curl了 一般我们会在cmake脚本中通过find_package查找curlfind_package(CURL) 一般来说这样也没问题,但如果你是像博主一样使用自己编译的curl静态。...模式查找 find_package(CURL) endif() 因为cmake本身提供了Module方式查找CURL的脚本,调用find_package时如果不指定CONFIG模式,默认是以MODULE...那么请看看你在第一步编译好的CURL生成的cmake脚本: curl-vc140-x64\lib\cmake\CURL\CURLTargets.cmake 1 如下是CURLTargets.cmake...并且还通过INTERFACE_COMPILE_DEFINITIONS 属性定义了宏CURL_STATICLIB以告诉引用CURL::libcurl的项目使用的是CURL静态。...cmake内置MODULE方式查找CURL的脚本(cmake-3.17.1-win64-x64/share/cmake-3.17/Modules/FindCURL.cmake)2是按搜索CURL动态的方式来实现的

1.7K40

CMake 秘籍(二)

在这一点上,我们应该指出,我们可以使用add_definitions(-DIS_LINUX)(当然,根据所讨论的平台调整定义)不是使用target_compile_definitions来设置定义。...这在CMAKE_SIZEOF_VOID_P CMake 变量中定义,并将告诉我们 CPU 是 32 位还是 64 位。...加速不是OMP_NUM_THREADS的完美倍数并不是本教程的关注点,因为我们专注于需要 OpenMP 的项目中的 CMake 方面。...请注意,依赖项现在不是必需的: find_package(BLAS) 如果找到 BLAS,我们为可执行目标设置相应的编译定义和链接: if(BLAS_FOUND) message(STATUS "...然而,编写一个完全全面的 find-module 远非易事;有许多难以发现的边缘情况,我们在寻找 Unix 和 Windows 平台上的 ZeroMQ 文件时展示了这样一个例子。

46520

cmake:用于搜索mysql的FindMySQL.cmake及bug溯源及修复

最近设计一个需要mysql的项目,构建项目的时候需要find_package查找mysql 安装位置,cmake默认没有提供mysql的find_package支持.好在mysql官方是提供了,在github...CMakeLists中添加mysql支持 在CMakeLists.txt 添加如下代码 # 查找 MySQL SDK #set(MYSQLCLIENT_STATIC_LINKING true) #set...(FINDMYSQL_DEBUG true) find_package(MySQL MODULE REQUIRED) 设置环境变量MYSQL_DIR 如下是FindMySQL.cmake源码中关于可选参数的说明...;mysql_strings;D:/mysql-5.6.37-winx64/lib/libmysql.lib BUG 然而事实上你会看到如下输出: -- You will link dynamically...错误计数超过 100;正在停止编译 进一步分析mysql.h的源码,及MYSQL_SERVER_VERSION宏定义的位置,发现MYSQL_SERVER_VERSION其实定义在mysq_version.h中,报错则与

1.6K10

CMake 秘籍(五)

输出日志选项LOG_BUILD和LOG_INSTALL指示ExternalProject_Add为构建和安装操作编写日志文件,不是输出到屏幕。...值得注意的是,find_package命令使用了CONFIG选项;这告诉 CMake 首先查找FFTW3Config.cmake文件以定位 FFTW3 。...如果系统上未安装该,我们需要告诉 CMakeFFTW3Config.cmake文件的位置。这可以通过设置FFTW3_DIR变量来完成。...我们将使用FetchContent或ExternalProject_Add在配置时下载所有必需的 Google Test 源码,并且在本菜谱中只关注在配置时获取依赖,不是实际的源码及其单元测试。...宏定义了{_project_name}_SOURCE_DIR和{_project_name}_BINARY_DIR,我们使用宏不是函数,因为{_project_name}_SOURCE_DIR和{_project_name

50020

CMake---优雅的构建CC++软件项目实践(1)

CMAKE_LIBRARY_PATH "lib_path") // find_library,查找文件 SET(CMAKE_MODULE_PATH "module_path") // find_package...寻找3rdparty也不一定需要自己去编写FindXX.cmake,也可以直接用include(xxx.cmake)结合find_file命令实现寻找依赖,find_file寻找到的结果存放到CACHE...cmake 还提供了一系列 find_package 方法帮助简化配置依赖, cmake 还支持多项目/模块管理,如果依赖源码同时被 cmake 管理构建,那么情况会简单很多,这种方式称为源码级依赖管理...├── submodule # 存放源码依赖 ├── target # 存放依赖 ├── CMakeLists.txt ├── cmake # 存放 find_package...└── lib # 文件存放目录 │ └── linux_x86-64 │ ├── include │ └── lib ├── cmake

8.2K52

利用Pytorch的C++前端(libtorch)读取预训练权重并进行预测

/anaconda3/envs/fastai/lib" 编译好之后的libtorch在path/to/pytorch/torch/lib/中,但要注意,实际我们在cmake中添加查找lib位置的路径为/...然后编写我们的CmakeLists文件,其中find_package作用为根据我们提供的地址,去寻找libtorch的TorchConfig.cmake从而将整个libtorch添加到我们的整体文件中...: cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR) project(simnet) find_package(Torch REQUIRED) message...至于如何编译OpenCV,可以看这里:Ubuntu下源码安装Opencv完全指南 与OpenCV联合编译 自己环境中存在OpenCV的前提下,同样使用Cmakefind_package命令可以找到,为此...,我们修改CmakeLists文件为: cmake_minimum_required(VERSION 3.12 FATAL_ERROR) project(simnet) find_package(Torch

62540

xmake v2.5.9 发布,改进 C++20 模块,并支持 Nim, Keil MDK 和 Unity Build

但是它包含了头文件列表,这通常用于 headeronly 项目的安装,IDE 工程的文件列表生成,以及安装阶段的 cmake/pkgconfig 导入文件的生成。...,所以 CMake 提供的 find_package 已经可以查找大量的和模块,我们完全复用 cmake 的这部分生态来扩充 xmake 对包的集成。...我们可以通过 find_package("cmake::xxx") 去借助 cmake 来找一些包,xmake 会自动生成一个 cmake 脚本来调用 cmakefind_package 去查找一些包..." } } 指定版本 find_package("cmake::OpenCV", {required_version = "4.1.1"}) 指定组件 find_package("cmake::...FindBoost.cmake find_package(Boost REQUIRED COMPONENTS regex system) 设置环境变量 find_package("cmake::OpenCV

2.5K10
领券