问题标签 [tdm-gcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ShellExecute - 错误代码 5
我正在使用带有 TDM-GCC 的 Notepad++。我的电脑是 2Gb RAM Windows 10 32 位 3.30 GHz。当我执行我的简单程序时,它显示错误。
我遵循这个:ShellExecuteEx 函数总是返回错误代码 5 (C++)
程序代码(如有必要):
但它不活跃,请给我帮助。非常感谢!
c - a.exe 终端在程序执行停止后立即关闭
我已经在我的系统上安装了 TDM-GCC 编译器。我在文本编辑器中编写我的 c 程序并使用 .c 扩展名保存它并使用 MinGW 终端中的 gcc 命令对其进行编译,并且像往常一样创建 a.exe 文件作为它的结果但是当我双击a.exe 文件并打开它会出现一个显示输出的终端,并且该终端会在程序执行结束后立即关闭...。如何在程序结束后立即停止该终端关闭?
c - 文件输出不正确
我正在尝试将一些数据输入到文件中,然后在控制台上读取并打印它。
这是我的代码:
我输入数据为
比萨
:wq
输出:
问题是什么?
c++ - fstream 的默认模式
我正在查看 SO post C++ file stream open patterns ambiguity。我想知道fstream的默认文件打开方式。一个答案说,
上面的意思是下面的代码用完全相同的打开标志打开文件 fstream f("a.txt", ios_base::in | ios_base::out); ifstream g("a.txt", ios_base::out); ofstream h("a.txt", ios_base::in);
因此,如果我理解正确,如果我创建 fstream 的对象,我应该能够读取或写入。
但下面的代码不会将任何数据写入文件
但是,如下所示的添加模式会创建带有数据“将数据写入文件”的文本文件
那么默认模式是否是实现定义的呢?我正在使用 TDM-GCC-64 工具链。
c - 具有位域的结构大小与预期不符
我正在查看有关link1 link2等位字段的几篇 SO 帖子。我正在使用 TDM-GCC-64 编译器。在下面写了这段代码来测试各种场景下结构的大小。
我将 sizeof(struct P) 和 sizeof(struct Q) 设为 8 个字节。这意味着,字符和整数将被分开考虑,即使整数是位字段类型并且有可用空间,char 也不会放在整数空间中。同样,整个结构与 sizeof(int) 的边界对齐,因此在 P 的情况下总大小将为 4+1+3 个填充字节。如果我使用#pragma pack(1),我得到 9 个字节,而整数现在不是自然对齐,并且整个结构都被打包成不对齐整数类型的边界。
考虑到相同的概念,我期望 sizeof(struct N) 为 [4 byte for int, + 2 byte short + 2 byte short + 2 byte short + 2 byte for short + 1 byte for two char type combination + 3 for alignment = 16 个字节。
但是 sizeof(struct N) 是 12 字节而不是 16 字节。为什么M和N的大小不一样?
c - extra spaces written in r+ mode
In the code below, extra spcaes (may be around 300 space) are getting appended if I write data after seeking the file pointer to the start position after the line
If I comment second fputs() function call, there is no issue. Also the inputted data is not getting appended at the end, instead only spaces are getting appended. I am unable to identify the problem.
I am using TDM-GCC-64 compiler.
For testing purpose, file1.txt had contents "Welcome to You All" at the beginning. Inputted data: "Today" Output after execution of the program: "Todayme to You All" followed by many spaces.
c++ - 如何将 -std=c++17 添加到我的 mingw32-make 中?
我已经开始使用 Emacs 进行 c++ 编程。对于编译器,我下载了 TDM-GCC-64。但是当我输入M-x compile
它时它会要求,make -k
然后它会抛出一个错误 not identify make
。于是我就下载了mingw32-make
。一切正常,但我想使用 C++17,但它不支持,所以我读到了关于编辑的内容makefile
,但我找不到:唯一的就是make.exe
. 我现在该怎么办?
python - TDM-GCC 编译的 win32x64 DLL 无法在 python 3.6 中加载,但在使用 python 2.7 时可以
我的 cmd.exe环境控制台输出
如下控制台输出所示,我使用了两个版本的 python。我使用 Code::Blocks 16.01 创建了一个 DLL 项目,该项目使用 GNU GCC 编译器的 TDM-GCC(代码块中包含的 GNU GCC 编译器无法构建 x86_64 程序,它构建的 x86 dll 导致 WindowsError:[Error 193 ] 使用以下代码加载时)
python代码在这里(testdll.py)
dll c++ 代码(主要由代码块生成)
这是main.h
DLL 编译选项(构建日志)
问题
使用时py -2 testdll.py
,它工作正常并得到消息框和控制台日志“加载了dll”,但是使用时python -3 testdll.py
,这是回溯。
当我从 c++ 代码中删除该函数(下面的代码)时,单击重建按钮,使用 Python2 或 Python3 重新运行 python 代码,它都可以正常工作并得到正确的输出。
谁能告诉我为什么,谢谢,我真的很困惑。
我刚刚重新运行了这些步骤(使用命令行而不是代码块)
1、复制上面贴的代码(并保存在某处)
2、打开cmd.exe
3、运行以下命令(并将输出粘贴到这里)
4、重新运行 py -3 testdll.py 仍然出现 OSError: [WinError 1114] 但是这一次,我删除了上面提到的那个函数,Python3.6 仍然拒绝加载那个 dll,:(
5、检查py -3
和py -2
,gcc --version
确认版本不变
我的解决方案
虽然将 CodeBlocks 生成的项目编译到 WinDll 不成功;我尝试使用以下命令将手动编写的源代码编译为 cdll 以获得本机速度(但不能使用某些宏,例如DLL_EXPORT
)。
下面的代码由我的g++和py2、py3编译加载成功。
mingw - tdm-gcc 项目还活跃吗?
网站上 TDM-GCC 发行版的最后一次更新可以追溯到 2015 年 7 月。
捆绑的 GCC 编译器的版本是 5.1.0 。
Code::Blocks IDE 可以使用 32 位和 64 位的更新版本。