GVKun编程网logo

c – 使用mingw编译时增加堆栈大小?(mingw编译c语言)

19

在本文中,您将会了解到关于c–使用mingw编译时增加堆栈大小?的新资讯,同时我们还将为您解释mingw编译c语言的相关在本文中,我们将带你探索c–使用mingw编译时增加堆栈大小?的奥秘,分析min

在本文中,您将会了解到关于c – 使用mingw编译时增加堆栈大小?的新资讯,同时我们还将为您解释mingw编译c语言的相关在本文中,我们将带你探索c – 使用mingw编译时增加堆栈大小?的奥秘,分析mingw编译c语言的特点,并给出一些关于c – 如何增加gcc可执行堆栈大小?、GDAL使用mingw编译问题、htmlcxx-0.85 mingw编译、Java堆栈溢出错误-如何在Eclipse中增加堆栈大小?的实用技巧。

本文目录一览:

c – 使用mingw编译时增加堆栈大小?(mingw编译c语言)

c – 使用mingw编译时增加堆栈大小?(mingw编译c语言)

我正在编写一个递归泛洪填充算法来查找图像中的连接组件,我的代码编译并运行良好的MSVC 2008编译器;但是mingw编译的二进制文件在运行时崩溃了.

在我用std :: stack将算法转换为非递归后,一切顺利.

但是,如果我必须在某些情况下使用递归算法,并且mingw无法处理呢?

如何增加二进制文件的堆栈大小,是否有任何编译选项?

谢谢

解决方法

使用
gcc -Wl,--stack,N

其中N是堆栈大小.例如. gcc -Wl,– stack,4194304

c – 如何增加gcc可执行堆栈大小?

c – 如何增加gcc可执行堆栈大小?

当我尝试编译它时,我有大的Boost / Spirit元程序吹GCC的堆栈.

如何增加gcc的堆栈大小,所以我可以编译这个程序?

注意:没有无限的递归,但是有足够的附带递归来排除gcc的堆栈.

解决方法

在 Linux上,您可以在/etc/security/limits.conf中扩展堆栈大小.

您可以通过使用来检查您当前的堆栈大小

$ulimit -s8192

然后将堆栈扩展为两倍:

youruser    soft    stack    16384

然后重新登录

这将增加您正在运行的所有可执行文件的堆栈大小,而不仅仅是GCC.

GDAL使用mingw编译问题

GDAL使用mingw编译问题

编译的时候总是提示找不到头文件

在window下使用tdm-mingw编译64位的程序。

在cygwin下使用./configure --prefix=/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/build --with-libz=yes --with-libtiff=yes --with-geotiff=yes --with-jpeg=yes  --enable-shared --enable-static --with-liblzma=yes --build=x86_64-w64-mingw32

生成makefile。让使用mingw32-make进行编译。然后就报下面的错误了

mingw32-make[1]: Entering directory ''D:/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/gcore''
C:/TDM-GCC-64/bin/mingw32-make -C mdreader
mingw32-make[2]: Entering directory ''D:/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/gcore/mdreader''
C:/cygwin64/bin/sh.exe /cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/libtool --mode=compile --tag=CXX g++ -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/port -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/gcore -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/alg -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/ogr -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/ogr/ogrsf_frmts -g -O2  -Wall  -DOGR_ENABLED -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/port  -DGDAL_COMPILATION -c -o ../reader_digital_globe.lo reader_digital_globe.cpp
libtool: compile:  g++ -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/port -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/gcore -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/alg -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/ogr -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/ogr/ogrsf_frmts -g -O2 -Wall -DOGR_ENABLED -I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/port -DGDAL_COMPILATION -c reader_digital_globe.cpp  -DDLL_EXPORT -DPIC -o ../.libs/reader_digital_globe.o
In file included from reader_digital_globe.h:34:0,
                 from reader_digital_globe.cpp:31:
../gdal_mdreader.h:35:22: fatal error: cpl_port.h: No such file or directory
compilation terminated.



这里可以看到编译参数中有  
-I/cygdrive/d/development_library/GDAL/gdal-2.0.2-mingw64/gdal_2/gdal-2.0.2/port

可是还是找不到头文件,这是为什么呢?


htmlcxx-0.85 mingw编译

htmlcxx-0.85 mingw编译

下载htmlcxx-0.85.tar.bz2, 解压编译,命令如下

具体的也可以查看解压的文件中的INSTALL文件.

configure  --prefix=/f/local/        #将生成的库文件与头文件放到/f/local目录下

make

make install

本来应该顺利的编译并拷贝文件完毕, 但是在make的时候有一个链接的错误.

库文件libiconv无法链接, 但是在mingw中libiconv库是存在的, 经过测试发现只要修改文件 libhtmlcxx.la文件,

找到 -lfi, 然后在后面添加-liconv, 然后重新输入makei就ok了.

后来在搜索stackoverflow中也有人提到过这个文件, 据说是lib链接是的order问题找成的.

Java堆栈溢出错误-如何在Eclipse中增加堆栈大小?

Java堆栈溢出错误-如何在Eclipse中增加堆栈大小?

如何解决Java堆栈溢出错误-如何在Eclipse中增加堆栈大小??

打开应用程序的运行配置(运行/运行配置…,然后在“ Java应用程序”中查找应用程序条目)。

该参数选项卡中有一个文本框VM参数,输入-Xss1m(或最大堆栈大小更大参数)。默认值为512 kByte(SUN JDK 1.5-不知道供应商和版本之间是否有所不同)。

解决方法

我正在运行一个用Java在Eclipse中编写的程序。对于很大的输入,该程序具有很深的递归级别。对于较小的输入,程序运行正常,但是在给出较大的输入时,出现以下错误:

Exception in thread "main" java.lang.StackOverflowError

可以通过增加Java堆栈大小来解决此问题,如果可以,那么如何在Eclipse中做到这一点?

更新:

@乔恩·斯基特

该代码递归地遍历解析树以建立数据结构。因此,例如,代码将使用解析树中的一个节点来做一些工作,并在该节点的两个子节点上调用自身,将其结果组合起来以给出树的整体结果。

递归的总深度取决于解析树的大小,但是当递归调用的数量达到1000时,代码似乎会失败(没有更大的堆栈)。

我也很确定代码不会因为错误而失败,因为它适用于少量输入。

今天关于c – 使用mingw编译时增加堆栈大小?mingw编译c语言的讲解已经结束,谢谢您的阅读,如果想了解更多关于c – 如何增加gcc可执行堆栈大小?、GDAL使用mingw编译问题、htmlcxx-0.85 mingw编译、Java堆栈溢出错误-如何在Eclipse中增加堆栈大小?的相关知识,请在本站搜索。

本文标签: