指定CMAKE构建32位/64位版本的程序 GCC (on Linux) and some other compilers, e.g Sun Studio. Set CFLAGS and CXXFLAGS to include -m32 (32-bit build) or -m64 (64-bit build). Windows, Visual Studio generator .Use 64 bit generator ,e.g cmake -G "Visual Studio 10 Win64" path\to\sou...
5. 特定于平台的选项 18.-m32:生成 32 位程序(在支持的系统上)。 19.-m64:生成 64 位程序(在支持的系统上)。 20.-fPIC:生成位置无关的代码,通常用于共享库。 6. 其他选项 21.-fopenmp:启用 OpenMP 支持(并行编程)。 22.-fsanitize=address:启用地址消毒(检测内存错误)。 23.-fsanitize=undefined:启用...
GCC命令行参数 32位版:加上 -m32 参数,生成32位的代码。 64位版:加上 -m64 参数,生成64位的代码。 debug版:加上 -g 参数,生成调试信息。 release版:加上 -static 参数,进行静态链接,使程序不再依赖动态库。加上 -O3 参数,进行最快速度优化。加上-DNDEBUG参数,定义NDEBUG宏,屏蔽断言。 当没有-m32或-m...
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-m32") else() endif(USE_32BITS) 对于UNIX 和类 UNIX 平台,我们可以通过编译器标志(选项)来控制进行 32 位还是 64 位构建。 GCC命令行参数 32位版:加上 -m32 参数,生成32位的代码。 64位版:加上 -m64 参数,生成64位的代码。 debug版:加上 -g 参数,生...
如果要32位,就执行:vcvarsall.bat x86。 执行完后再跳转到要构建的工程目录下,接着执行:cmake -G"NMake Makefiles" path\to\source\dir,以及:nmake。这样生成出来的程序就是x86或者x64版本。 Linux 设置CFLAGS(或者CXXFLAGS)为-m32或者-m64,例如:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64") 1. 2. 3. 如果换成其他架构,比如x86,应该相应修改为: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") 1. 2. 解决CPU架构不匹配问题 ...
如果是GCC编译器或者其他的诸如sun Studio之类的,可以设置CFLAGS CXXFLAGS变量,加⼊-m32 或者-m64来编译x86或者x64的程序。如果是windows平台下VS的project⽂件的话,请使⽤VS generator,cmake -G "Visual Studio 10 Win64"就是编译为x64,cmake -G "Visual Studio 10 "就是编译为x86.如果是Mac OS ...
cmake 区分架构是软件开发中一个重要的主题,它帮助开发者在构建和配置项目时,根据目标架构的特点生成相应的构建文件。在多年软件开发的历程中,很多项目由于没有明确区分不同架构导致了运行时出现大量问题。本文将详细探讨如何通过 CMake 实现架构的区分,便于在不同的环境中自动适配。
如果要32位,就执行:vcvarsall.bat x86。 执行完后再跳转到要构建的工程目录下,接着执行:cmake -G"NMake Makefiles" path\to\source\dir,以及:nmake。这样生成出来的程序就是x86或者x64版本。 Linux 设置CFLAGS(或者CXXFLAGS)为-m32或者-m64,例如:
Candidate multilib: 32;@m32 Selected multilib: .;@m64 "/usr/bin/ld" -export-dynamic -z relro --hash-style=gnu --build-id --enable-new-dtags --eh-frame-hdr -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_fa336 /usr/bin/../lib64/gcc/x86...