在GCC编译的项目中,
g++与一个嵌套库一起编译gcc?我使用CMake与GNU Make,并希望完全看到所有命令(例如编译器如何执行,所有标志等).
GNU make有--debug,但似乎没有任何其他选项有用吗?CMake是否在生成的Makefile中提供了额外的标志以进行调试?
我正在尝试配置我的构建系统,以便我的发布版本不包含额外的调试.但我无法在CMake文档中找到任何列出默认情况下每个构建类型使用哪些编译器标志的内容,而我宁愿不发明自己的做事方式.
这个功能是否已经存在?如果不采用试验和错误,我如何确定默认情况下为各种构建类型使用哪些标志?
我不明白如何使用CMake配置项目和处理命令行选项.我需要设置第三方库目录的变量(例如Poco和GTest).通常,我只是运行带有必要参数的./configure.例如:
./configure --poco-inc=~/libs/poco/include --poco-lib=~/libs/poco/lib --gtest-inc=~/libs/gtest/include --gtest-lib=~/libs/gtest/lib
Run Code Online (Sandbox Code Playgroud)
但是如何将等效信息传递给CMake?如何在cmake文件中使用'set'或'property'指定选项并进行处理?
我正在尝试将使用 DocuSign 签名的 pdf 转换为图像格式。我们在 Convert_from_path 方法中遇到错误。代码及错误如下所示:
import pdf2image
data=pdf2image.convert_from_path('name.pdf')
PDFPageCountError: Unable to get page count.
Syntax Error: Gen inside xref table too large (bigger than INT_MAX)
Syntax Error: Couldn't find trailer dictionary
Syntax Error: Invalid XRef entry
Syntax Error: Invalid XRef entry
Syntax Error: Top-level pages object is wrong type (null)
Command Line Error: Wrong page range given: the first page (1) can not be after the last page (0).
Run Code Online (Sandbox Code Playgroud) 从文档页面:
CMAKE_BUILD_TYPE
指定单配置生成器上的构建类型。
这静态指定将在此构建树中构建哪种构建类型(配置)。可能的值是空的,
Debug,Release,RelWithDebInfo和MinSizeRel。此变量仅对单配置生成器(例如Makefile Generators和Ninja)有意义,即那些在CMake运行以生成生成树时选择单个配置的生成器,而与多配置生成器不同,后者在生成的生成环境中提供对构建配置的选择。有许多按配置的属性和变量(通常遵循SOME_VAR_<CONFIG>无序顺序约定),例如CMAKE_C_FLAGS_<CONFIG>,指定为大写:CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL]。例如,在配置为build type的构建树中Debug,CMake将看到CMAKE_C_FLAGS_DEBUG已将设置添加到CMAKE_C_FLAGS设置。另请参阅CMAKE_CONFIGURATION_TYPES。
我知道之间的差异Debug构建和Release建立,但什么是之间的差异Release,RelWithDebInfo以及MinSizeRel?我猜的RelWithDebInfo意思是创建可调试的二进制文件,并MinSizeRel意味着创建可能的最小大小的二进制文件。
CMAKE_BUILD_TYPE:STRING
如果使用的是Visual Studio之类的IDE,则应使用IDE设置来设置构建类型。请注意,Release和RelWithDebInfo在大多数平台上使用不同的优化级别。
如果要生成生产版本,应该选择Release吗?
我正在使用 CMake 在 Linux 上管理一组项目的构建,而不是单个项目,但原理是相同的。每个项目都有自己的选项集合,例如DEVEL要包含的开关和自定义代码。这些是以标准的 CMake 方式添加的:
OPTION(NAME "Helpstring" VALUE)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种根据它们所属的项目对这些选项进行分组的方法,因为它们目前按字母顺序排列,并且可能会非常混乱。它还可以让我为每个选项提供唯一的名称,例如一个DEVEL选项可以应用于所有项目,但我可能只想在某些项目上启用它。我不想写例如PROJECTNAME_DEVEL选项。
理想情况下,我想要一个系统来根据项目划分选项,例如
PROJECT1NAME:
DEVEL: ON
PROJECT2NAME:
DEVEL: OFF
ANOTHER_OPTION: ON
Run Code Online (Sandbox Code Playgroud)
我能以某种方式做到这一点吗?我主要针对 cmake 的 ncurses 接口,我看到 Qt 接口可以对条目进行分组,那么在 ncurses 接口中这可能吗?
干杯