草庐IT

entry-debug-standard-ark-signed

全部标签

c++ - 有没有跨平台的方法来检测 Debug模式编译?

是否有跨平台的方法来检测Debug模式编译?如果没有,那么顶级编译器如何做;MSVC、GNU和MINGW、mac、clang、intel。例如MSVC,您可以像下面这样检测Debug模式。#ifdefined_DEBUG//debugrelatedstuffhere#else//releaserelatedstuffhere#endif 最佳答案 对于许多或大多数编译器来说,“调试”模式是一个多方面的概念,包括几个正交设置。例如,对于gcc,您可以使用-g将调试符号添加到输出代码,使用-O启用优化,或禁用assert()宏使用-DN

c++ - Xcode C++ : Build in Debug but not Release

我正在使用Xcode6、c++进行编码。我可以在调试中构建和运行我的程序,但我无法以某种方式在Release模式下编译。我看到的错误是:AppleLLVM6.0错误无法读取配置文件:没有这样的文件或目录我真的不知道这是什么意思...(在将main.cpp文件缩减为通常的“HelloWorld”程序后我仍然明白这一点)我已经按照建议尝试了XcodebuildsonDebugbutnotonRelease清理我的项目,关闭它,关闭Xcode重新启动并重建,甚至删除派生数据,但我仍然遇到同样的问题。有人知道如何解决这个问题吗?非常感谢T 最佳答案

C++文件输入输出的简单实现(Debug)

1.前言:        文件输入输出是个很有用的东西,有时比赛时要有:要求使用文件输入输出,还有时候……    遇到这种时间限制非常恶心的题目:手动测试会有误差……    文件输入输出是个很好的选择!2.写法:C    C语言的写法有点复杂,涉及文件指针,本文不多介绍。下面给出示范写法:#includeintmain(){FILE*file=fopen("文件名","文件模式:r,w");if(file!=NULL){//若打开失败,file值为NULL fprintf(file,"整数:%d\n",8/*如同printf*/); }fclose(file);//记得关闭return0;}

c++ - 带有 RcppArmadillo 的 R 包中的 ARMA_NO_DEBUG

我想在访问RcppArmadillo中的矩阵元素时禁用边界检查。Armadillo的文档说Armadillocanbeconfiguredviaeditingthefileinclude/armadillo_bits/config.hpp.Specificfunctionalitycanbeenabledordisabledbyuncommentingorcommentingoutaparticular#define,listedbelow.但是在R包的上下文中,我该如何激活这个指令?我试图创建一个config.h文件#ifndefCONFIG_LOADED#defineCONFIG_

c++ - int8_t 和 char : converts between pointers to integer types with different sign - but it doesn't

我正在处理一些嵌入式代码,并且正在从头开始编写一些新东西,因此我更愿意坚持使用uint8_t、int8_t等类型。然而,当移植一个函数时:voidfunctionName(char*data)到:voidfunctionName(int8_t*data)在将文字字符串传递给函数时,我收到编译器警告“在指向具有不同符号的整数类型的指针之间转换”。(即调用functionName("putthistextin");时)。现在,我明白了为什么会发生这种情况,并且这些行只是调试,但我想知道人们认为什么是最合适的处理方式,而不是对每个文字字符串进行类型转换。在实践中,我不认为一揽子类型转换比使用

c++ - 错误 LNK1104 : cannot open file 'Debug\MyProjectLib.lib'

我有以下CMakeLists.txt文件来生成我基于Qt的项目:cmake_minimum_required(VERSION2.8.12)project(MyProject)find_package(Qt5Widgets)set(MyProjectLib_src${PROJECT_SOURCE_DIR}/gui.cpp)set(MyProjectLib_hdr${PROJECT_SOURCE_DIR}/gui.h)set(MyProjectLib_ui${PROJECT_SOURCE_DIR}/gui.ui)set(MyProjectBin_src${PROJECT_SOURCE_DI

c++ - fatal error LNK1104 : cannot open file "Debug/

我正在尝试在MicrosoftVisual6.0版中运行C++代码。代码编译良好,但我收到错误“fatalerrorLNK1104:当我尝试构建时无法打开文件“Debug/Assignment.exe”。该文件保存在名为Assignment的项目中。我是C++的新手,并且微软视觉的东西。我不知道从哪里开始绕过错误。请帮助。 最佳答案 听起来exe(Debug/Assignment.exe)的拷贝已经在运行,因此visualstudio无法覆盖该文件。查看任务管理器/进程资源管理器并终止所有正在运行的拷贝,然后重试。

c++ - 外部 "C"DLL : Debug is OK, 发布抛出错误 C2059

我有一个作为C++Win32应用程序创建的DLL。为了防止在我的DLL中出现名称混淆,我使用了下面定义的EXPORT定义:#ifndefEXPORT#defineEXPORTextern"C"__declspec(dllexport)#endifEXPORTint_stdcallSteadyFor(doublePar[],doubleInlet[],doubleOutlet[]);为了编译这段代码,我必须进入项目的属性并将C/C++CallingConvention设置为__stdcall(/Gz)并设置CompileAs到CompileasC++Code(/TP)。这在Debug模式

c++ - unsigned-signed 下溢机制

我知道以下内容unsignedshortb=-5u;由于下溢,评估为b为65531,但我不明白5u在转换为-5之前是否转换为带符号的int,然后重新转换回无符号以存储在b中,或者-5u是等于0-5u(不应该这样,-x是一元运算符) 最佳答案 5u是一个文字无符号整数,-5u是它的否定。无符号整数的否定定义为从2**n中减去,得到相同的结果包装从零减去的结果。 关于c++-unsigned-signed下溢机制,我们在StackOverflow上找到一个类似的问题:

c++ - 分配器 : how are the standard containers expected to work internally?

作为这个问题的示例,我将使用std::vector。它的定义来自documentation如下:template>class vector;正如预期的那样,如果T是它的类型,分配器应该偏向于T。总之,下面的代码编译没有错误(至少,使用GCC)并运行:#include#include#includestructS{inti;doubled;std::strings;};intmain(){std::allocatoralloc;std::vector>v{alloc};v.push_back(S{});}在这里,我通过使用专注于int的分配器创建vector的S。它是合法的代码吗?我应该