草庐IT

Main-Link

全部标签

c++ - 函数 main 中程序开头的 stackoverflow 错误

我制作了一个程序,我想对其进行调试(或运行),但在函数main中的第一个运算符之前,它中断并显示一条消息:name.exe中0x0020f677处未处理的异常:堆栈溢出。为什么会发生这种情况以及如何解决该问题?VisualC++2010,Win32控制台应用程序。编辑1:调试器向我显示chkstk.asm中的asm代码。为了解决这个问题,分析什么很重要?头文件中添加的东西导致了这个问题? 最佳答案 如果你清除了一个固定大小的数组并且它的大小太大,你可能会遇到这个错误。intfixedarray[1000000000];尝试减少长度或

c++ - 如何为在 main() 外部和内部声明的变量分配内存

我注意到在处理一些大型数组(如1000x1000的double)时,如果我在main()内部声明数组,我的程序会耗尽内存,但如果我在main()外部声明数组,这似乎永远不会发生)即使对于更大的阵列。有人可以解释一下区别是什么吗? 最佳答案 当一个变量在一个函数中声明时(在你的例子中,main),它被分配在堆栈上,如果它太大(例如,一个大数组),你会遇到stackoverflow.在所有函数之外定义的变量是静态分配的。它的生命周期持续到程序终止。 关于c++-如何为在main()外部和内部

c++ - 在 CMake 中,指定所有可执行文件 target_link_libraries 某些库

在CMake中,有没有办法指定我所有的可执行文件都链接到某个库?基本上我希望我所有的可执行文件都链接到tcmalloc和分析器。简单地指定-ltcmalloc和-lprofiler不是一个好的解决方案,因为我想让CMake以可移植的方式找到库的路径。 最佳答案 您可以使用您自己的函数覆盖内置的add_executable函数,它总是添加所需的链接依赖项:macro(add_executable_name)#invokebuilt-inadd_executable_add_executable(${ARGV})if(TARGET${_

c++ - libtool link - 便利库的全局状态初始化

我的设置不起作用,我不知道我在这里做错了什么-我正在尝试将一个项目从手工制作的Makefile转换为autotools,并且我认为我已经正确设置了大部分项目,因为应用程序及其所有便利库都正确构建和链接,但是全局状态初始化程序存在一些问题便利图书馆。一些库在代码中遵循这样的模式://inglobalscopeofsomemodule.cppnamespace{boolregistered=ModuleShare::registerModule("SomeModule");}这段代码连同实际的模块源代码,使用libtool编译成一个方便的库//libsomethingMakefile.am

c++ - Linux 上的 ICC : link to OpenMP

使用英特尔C++编译器链接到OpenMP的步骤是什么?英特尔编译器是否附带其自己的OpenMP库,还是应该链接到libgom? 最佳答案 它显然带有自己的实现。只要使用-openmp标志进行编译,就不需要指定额外的库。$icc-openmpt.c$ldd./a.out...libiomp5.so=>/opt/intel/Compiler/11.1/072/lib/intel64/libiomp5.so(0x00007fd8e7ac6000)... 关于c++-Linux上的ICC:lin

c++ - 已经在 main.obj 中定义

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。这是解决我的问题的代码,我收到4个错误:student.obj:errorLNK2005:"structNode*admitedFirstNode"(?admitedFirstNode@@3PAUNode@@A)alreadydefinedinmain.objstudent.obj:errorLNK2005:"structNode*allFirstNod

【正点原子STM32】搭建开发环境(安装MDK和器件支持包、DAP仿真器和ST LINK仿真器、CH340串口驱动)

一、常用开发工具简介MDKDAP二、安装MDK1、MDK简介2、如何获取MDK3、安装MDK和器件支持包三、安装仿真器驱动DAP仿真器免驱STLINK仿真器驱动安装方法STLINK驱动及教程四、安装CH340USB虚拟串口驱动1、安装CH340USB虚拟串口驱动2、为什么要安装CH340USB虚拟串口驱动?3、USB虚拟串口作用五、总结资料获取链接:https://pan.baidu.com/s/1Hmo14Isj6q0Pyft6oowJUQ?pwd=z9ik提取码:z9ik–来自百度网盘超级会员V3的分享一、常用开发工具简介MDKKeilMDK(MicrocontrollerDevelopm

c++ - 如果我指定多个,则使用哪个 `main`

连同其他一些,以下是main()的有效原型(prototype):intmain(void)intmain(int,char**)在C中,我们不能重载函数,因此永远不可能同时拥有两者。但在C++中,情况并非如此。如果我要在编译的C++可执行文件中同时使用两者,那么使用哪一个?它取决于命令行吗?标准怎么说? 最佳答案 C++11§3.6.1/2:”Thisfunctionshallnotbeoverloaded. 关于c++-如果我指定多个,则使用哪个`main`,我们在StackOver

c++ - 没有 main() 的 Cpp 类中的 `undefined reference to ` main`

我遇到了this在试图得到答案时。但似乎张贴者有多个文件,但没有链接,因此出现错误。但是,为什么在使用单个文件时会出现此错误?g++myClass.cpp/usr/lib/gcc/i686-redhat-linux/4.6.3/../../../crt1.o:Infunction`_start':(.text+0x18):undefinedreferenceto`main'collect2:ldreturned1exitstatus为什么main在编译时是必需的(它从哪里找到我的代码中提到的main)?main是代码执行的起点,但为什么编译器会假设我在这里需要一个main。我可以在其他

c++ - c++ 标准是否禁止 void main() 原型(prototype)?

在C++标准1998版和2003版的3.6.1.2节中,Animplementationshallnotpredefinethemainfunction.Thisfunctionshallnotbeoverloaded.Itshallhaveareturntypeoftypeint,butotherwiseitstypeisimplementation-defined.我的母语不是英语,不知道“butotherwise”是什么意思,是禁止其他返回类型,还是给C++编译器编写者权利?那么答案是什么? 最佳答案 你引用的英语确实禁止声明