CMake 默认编译、链接选项

12 篇文章 1 订阅

CMakeLists.txt 文件内容:

cmake_minimum_required(VERSION 3.4)

message(STATUS "CMAKE_C_FLAGS = " ${CMAKE_C_FLAGS})
message(STATUS "CMAKE_C_FLAGS_DEBUG = " ${CMAKE_C_FLAGS_DEBUG})
message(STATUS "CMAKE_C_FLAGS_MINSIZEREL = " ${CMAKE_C_FLAGS_MINSIZEREL})
message(STATUS "CMAKE_C_FLAGS_RELEASE = " ${CMAKE_C_FLAGS_RELEASE})
message(STATUS "CMAKE_C_FLAGS_RELWITHDEBINFO = " ${CMAKE_C_FLAGS_RELWITHDEBINFO})

message(STATUS "CMAKE_CXX_FLAGS = " ${CMAKE_CXX_FLAGS})
message(STATUS "CMAKE_CXX_FLAGS_DEBUG = " ${CMAKE_CXX_FLAGS_DEBUG})
message(STATUS "CMAKE_CXX_FLAGS_MINSIZEREL = " ${CMAKE_CXX_FLAGS_MINSIZEREL})
message(STATUS "CMAKE_CXX_FLAGS_RELEASE = " ${CMAKE_CXX_FLAGS_RELEASE})
message(STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO = " ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})

message(STATUS "CMAKE_EXE_LINKER_FLAGS = " ${CMAKE_EXE_LINKER_FLAGS})
message(STATUS "CMAKE_EXE_LINKER_FLAGS_DEBUG = " ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
message(STATUS "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL = " ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL})
message(STATUS "CMAKE_EXE_LINKER_FLAGS_RELEASE = " ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
message(STATUS "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO = " ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO})

message(STATUS "CMAKE_MODULE_LINKER_FLAGS = " ${CMAKE_MODULE_LINKER_FLAGS})
message(STATUS "CMAKE_MODULE_LINKER_FLAGS_DEBUG = " ${CMAKE_MODULE_LINKER_FLAGS_DEBUG})
message(STATUS "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL = " ${CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL})
message(STATUS "CMAKE_MODULE_LINKER_FLAGS_RELEASE = " ${CMAKE_MODULE_LINKER_FLAGS_RELEASE})
message(STATUS "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO = " ${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO})

message(STATUS "CMAKE_SHARED_LINKER_FLAGS = " ${CMAKE_SHARED_LINKER_FLAGS})
message(STATUS "CMAKE_SHARED_LINKER_FLAGS_DEBUG = " ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
message(STATUS "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL = " ${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL})
message(STATUS "CMAKE_SHARED_LINKER_FLAGS_RELEASE = " ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
message(STATUS "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO = " ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO})

message(STATUS "CMAKE_STATIC_LINKER_FLAGS = " ${CMAKE_STATIC_LINKER_FLAGS})
message(STATUS "CMAKE_STATIC_LINKER_FLAGS_DEBUG = " ${CMAKE_STATIC_LINKER_FLAGS_DEBUG})
message(STATUS "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL = " ${CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL})
message(STATUS "CMAKE_STATIC_LINKER_FLAGS_RELEASE = " ${CMAKE_STATIC_LINKER_FLAGS_RELEASE})
message(STATUS "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO = " ${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO})

Windows 平台 64 位编译输出:

C:\chenchang\VMs\share\test\bld_win32>cmake -G "Visual Studio 14 2015 Win64" ..
-- CMAKE_C_FLAGS =  /DWIN32 /D_WINDOWS /W3
-- CMAKE_C_FLAGS_DEBUG = /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- CMAKE_C_FLAGS_MINSIZEREL = /MD /O1 /Ob1 /D NDEBUG
-- CMAKE_C_FLAGS_RELEASE = /MD /O2 /Ob2 /D NDEBUG
-- CMAKE_C_FLAGS_RELWITHDEBINFO = /MD /Zi /O2 /Ob1 /D NDEBUG
-- CMAKE_CXX_FLAGS =  /DWIN32 /D_WINDOWS /W3 /GR /EHsc
-- CMAKE_CXX_FLAGS_DEBUG = /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
-- CMAKE_CXX_FLAGS_MINSIZEREL = /MD /O1 /Ob1 /D NDEBUG
-- CMAKE_CXX_FLAGS_RELEASE = /MD /O2 /Ob2 /D NDEBUG
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO = /MD /Zi /O2 /Ob1 /D NDEBUG
-- CMAKE_EXE_LINKER_FLAGS =  /machine:x64
-- CMAKE_EXE_LINKER_FLAGS_DEBUG = /debug /INCREMENTAL
-- CMAKE_EXE_LINKER_FLAGS_MINSIZEREL = /INCREMENTAL:NO
-- CMAKE_EXE_LINKER_FLAGS_RELEASE = /INCREMENTAL:NO
-- CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO = /debug /INCREMENTAL
-- CMAKE_MODULE_LINKER_FLAGS =  /machine:x64
-- CMAKE_MODULE_LINKER_FLAGS_DEBUG = /debug /INCREMENTAL
-- CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL = /INCREMENTAL:NO
-- CMAKE_MODULE_LINKER_FLAGS_RELEASE = /INCREMENTAL:NO
-- CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO = /debug /INCREMENTAL
-- CMAKE_SHARED_LINKER_FLAGS =  /machine:x64
-- CMAKE_SHARED_LINKER_FLAGS_DEBUG = /debug /INCREMENTAL
-- CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL = /INCREMENTAL:NO
-- CMAKE_SHARED_LINKER_FLAGS_RELEASE = /INCREMENTAL:NO
-- CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO = /debug /INCREMENTAL
-- CMAKE_STATIC_LINKER_FLAGS =  /machine:x64
-- CMAKE_STATIC_LINKER_FLAGS_DEBUG =
-- CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL =
-- CMAKE_STATIC_LINKER_FLAGS_RELEASE =
-- CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO =
-- Configuring done
-- Generating done
-- Build files have been written to: C:/chenchang/VMs/share/test/bld_win32

Ubuntu Linux 16.04 64 位编译输出:

root@chanchen-VirtualBox:/mnt/share/test/bld_lnx# cmake ..
-- CMAKE_C_FLAGS = 
-- CMAKE_C_FLAGS_DEBUG = -g
-- CMAKE_C_FLAGS_MINSIZEREL = -Os -DNDEBUG
-- CMAKE_C_FLAGS_RELEASE = -O3 -DNDEBUG
-- CMAKE_C_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG
-- CMAKE_CXX_FLAGS = 
-- CMAKE_CXX_FLAGS_DEBUG = -g
-- CMAKE_CXX_FLAGS_MINSIZEREL = -Os -DNDEBUG
-- CMAKE_CXX_FLAGS_RELEASE = -O3 -DNDEBUG
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG
-- CMAKE_EXE_LINKER_FLAGS = 
-- CMAKE_EXE_LINKER_FLAGS_DEBUG = 
-- CMAKE_EXE_LINKER_FLAGS_MINSIZEREL = 
-- CMAKE_EXE_LINKER_FLAGS_RELEASE = 
-- CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO = 
-- CMAKE_MODULE_LINKER_FLAGS = 
-- CMAKE_MODULE_LINKER_FLAGS_DEBUG = 
-- CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL = 
-- CMAKE_MODULE_LINKER_FLAGS_RELEASE = 
-- CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO = 
-- CMAKE_SHARED_LINKER_FLAGS = 
-- CMAKE_SHARED_LINKER_FLAGS_DEBUG = 
-- CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL = 
-- CMAKE_SHARED_LINKER_FLAGS_RELEASE = 
-- CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO = 
-- CMAKE_STATIC_LINKER_FLAGS = 
-- CMAKE_STATIC_LINKER_FLAGS_DEBUG = 
-- CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL = 
-- CMAKE_STATIC_LINKER_FLAGS_RELEASE = 
-- CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO = 
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/share/test/bld_lnx
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: libxlsxwriter是一个非常强大的C语言库,用于生成Excel XLSX文件格式,因此它是一个非常有用的工具。使用CMake编译libxlsxwriter是相对简单的。 首先,我们需要安装CMake。在Linux上,您可以从软件包管理器中安装它。在Windows上,您可以从CMake官方网站下载安装程序并进行安装。 接下来,我们需要在libxlsxwriter项目根目录下创建一个新的目录,并进入该目录。这里我们可以执行cmake ..命令来生成Makefile文件,并用make命令进行编译。如果需要生成其他类型的构建系统,例如Visual Studio项目,我们可以使用-cmake生成器来构建。 默认情况下,libxlsxwriter将被编译为静态库。如果您需要构建共享库,您可以使用下面的命令: cmake -D BUILD_SHARED_LIBS=ON .. 这将生成一个名为libxlsxwriter.so的共享库。如果您在Windows上进行编译,则共享库将被命名为libxlsxwriter.dll。 最后,我们需要执行make install命令来安装libxlsxwriter库。这将把库文件,头文件和CMake模块安装到您的系统中。 CMake编译libxlsxwriter非常简单,只需要遵循以上步骤,即可生成和安装这个强大的Excel文件生成库。 ### 回答2: libxlsxwriter是一个使用C编写的开源库,用于在C/C++程序中创建并写入Excel XLSX文件。CMake是一个开源的跨平台构建系统,可用于自动化构建、测试和打包。 要使用libxlsxwriter,需要将其编译为静态库或动态库,然后将库文件链接到C/C++程序中。使用CMake可以简化此过程,并确保跨平台兼容性。 在使用CMake编译libxlsxwriter之前,需要确保系统上已安装了必要的依赖项,例如zlib库。然后,可以按照以下步骤操作: 1. 下载libxlsxwriter源代码,并在代码根目录中创建一个build目录。 2. 进入build目录,并运行命令:cmake ..。这将使用CMake自动生成Makefile。 3. 运行make命令编译代码。根据系统性能和源代码大小,此步骤可能需要几分钟或更长时间。 4. 编译完成后,在build目录中将生成libxlsxwriter.a和libxlsxwriter.so两个库文件。 在将libxlsxwriter库文件链接到C/C++程序时,需要指定库文件的路径和名称。其中,libxlsxwriter.a为静态库文件,libxlsxwriter.so为动态库文件。还可以使用CMake生成config.h头文件,以方便在程序中引用libxlsxwriter的常量和宏定义。 总之,使用CMake可以轻松地编译和使用libxlsxwriter库,使开发人员能够更方便地在C/C++程序中创建和写入Excel文件。 ### 回答3: libxlsxwriter是一款非常流行的开源C库,主要用于生成Microsoft Excel的xlsx文件。它可以用于创建各种类型的电子表格和图表,包括图形、图像、数据、公式等。由于其强大的功能和易于使用,libxlsxwriter已经成为了许多开发人员的首选工具。 要编译libxlsxwriter,首先需要安装cmakecmake是一个非常流行的跨平台构建系统,它可以自动生成Makefile或Visual Studio项目等构建文件,让开发人员可以轻松地编译和构建他们的代码。 一般来说,编译libxlsxwriter的步骤如下: 1. 下载libxlsxwriter源代码,并解压缩到一个目录中。 2. 运行cmake命令,指定libxlsxwriter的源代码目录和Build目录。 3. 运行make命令,开始编译。 在运行cmake时,可以指定编译选项,例如是否启用测试、是否启用调试等。在编译完成之后,可以对生成的库进行测试,以确保它们能够正常工作。如果存在任何问题,可以查看编译输出或相关文档,以确定如何解决问题。 总之,编译libxlsxwriter需要使用cmake,可以根据实际需要定制编译选项,并通过测试确保编译的结果能够正常工作。虽然这可能需要一些时间和努力,但结果将会是一个优秀的、高质量的Excel生成库,它将帮助开发人员更轻松地创建各种类型的电子表格和图表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值