问题标签 [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.

0 投票
1 回答
2236 浏览

c - 为什么在通过命令提示符编译 C 程序时没有创建 *.o (object) 文件?

在使用代码块时,当我点击 Build 按钮时会创建 *.o (object) 文件。但是,在使用命令提示符时不会创建 *.o 文件。是什么原因?我正在使用 TDM-GCC-64。

0 投票
0 回答
481 浏览

c - tdm-gcc 的 mingw32-gcc 抛出“缺少参数”错误

我一直在尝试自己用 TDM_GCC 编译一个 dll 项目(没有任何 IDE)我在 powershell 中输入了第一个命令(在为 $Env:Path 分配了正确的值之后),如下所示:

我很喜欢第一个块,但第二个总是抛出如下错误:

如果我确切地说“-Wl”参数会引发错误,并且我无法获得任何 .def 或 .a 文件以在其他项目中使用。但值得怀疑的是,Code::Blocks 使用这些代码非常顺利且成功地完成了这个过程:\ 任何解决我的问题的帮助都非常感谢,谢谢。

0 投票
1 回答
1130 浏览

assembly - 组装:增加 2(或更大的数字)而不破坏 ADC 循环中的 CF?

我正在尝试在 Windows 中测试 TDM-GCC 64 位程序集中的附加功能。不久前我搜索了这方面的资源,发现了一个类似的代码(我做了一些更改以在 TDM-GCC 中编译它)。

这第一个汇编代码有效。不利的一面是,即使对于小数字,它也需要与计算最大尺寸一样长的时间。因此,我改为检查 X 和 Y 的大小并放置一个具有大小条件的循环,这样如果 X 和 Y 不大,它就不必总是添加整个数组。

但是我太简单了,认为使用 ADDQ 运算符将 8 个字节添加到 X 和 Y 的地址 (%r13, %r14)就可以遍历数组。这里的问题是,如果我像这样使用 ADDQ 运算符,它将进位标志重置为 0,因此计算进位(.add3)加法的整个循环会中断。我尝试使用

思考 incq 的工作方式类似于在 C++ 中增加一个指针,该指针知道它应该移动多少字节。但这只会将寄存器值增加 1,而不是我认为它会移动的 8。


所以我的问题是:在汇编中有没有办法将寄存器增加大于 1 的数字,或者在不触及进位标志的情况下进行加法?(不加,adc,因为他们都在最后设置了进位标志)

0 投票
1 回答
44 浏览

fortran - Fortran 中打开命令的错误操作(Insted 读取打开命令打开 .txt 文件)

这是我的简单代码:

在项目目录中,我没有创建任何 .txt 文件(因为我想用 iostat 测试打开文件),程序结束后我Read_Something.txt在项目文件夹中找到。

这个例子有什么问题?为什么会出现这个明显的错误?

IDE:代码::块 17.12,TDM_GCC_5.0.1 - 03

操作系统:Win 10 X64

0 投票
0 回答
197 浏览

cmake - 使用 TDM-GCC 和 CMake 构建 Allegro 5 库

我正在尝试使用 TDM-GCC 和 CMake 构建 Allegro 5 库。如屏幕截图所示,我使用 CMake 指向了正确的文件夹,但我得到的错误如下:

0 投票
1 回答
158 浏览

c++ - 更新的包,现在用 -O0 编译的 Mex 文件是“无效的 mex 文件”?

我有一组(以前工作和编译了几个月)MEX 文件。我用 pacman -Syu 更新了我 3 个月大的软件包(之前使用 GCC/G++ 运行良好),现在这是我的结果:

对于GCC/G++

  • O0 - MEX 文件“无效”
  • O1-O2 - 工作
  • O3 - “优化”整个程序。一个简单的 mexPrintf() 在正确的位置通过强制它不优化它来解决这个问题

对于Clang

  • 没有任何效果,所有优化级别都会导致无效的 mexfile

对于TDM-GCC

  • 无论优化级别如何,都能完美运行

操作系统:Win 10,最新更新

语言:C++03

MATLAB 版本:R2016B(没有更新 7,虽然经过测试,但没有帮助)

(更改 C++ 或 MATLAB 版本不是一种选择,这是客户要求)

MINGW64 GCC 版本:9.2.0

TDM GCC 版本:5.1.0-2

目前编译mex不是一个选项。(我在这里发了一篇关于它的新帖子)

以下是制作 c++ 目标文件时的样子:

g++ -c -IC:/Progra~1/MATLAB/R2016b/extern/include -I(some library we made) -g3 -O0 -m64 -DFLIP_MEX_DEBUG=1 -DFLIP_C -ansi -Wshadow -Wall -DMX_COMPAT_32 -DMATLAB_MEX_FILE -fexceptions -fno-omit-frame-pointer -D__WIN32__ myFile.cpp -o myFile.o

下面是 C 目标文件的样子:

gcc -c -IC:/Progra~1/MATLAB/R2016b/extern/include -I(some library we made) -g3 -O0 -m64 -DFLIP_MEX_DEBUG=1 -DFLIP_C -ansi -Wshadow -Wall -DMX_COMPAT_32 -DMATLAB_MEX_FILE -fexceptions -fno-omit-frame-pointer -D__WIN32__ myFile2.c -o myFile2.o

以下是从该目标文件生成 MEX 文件时的样子:

g++ -m64 -shared -Wl,-Bsymbolic -Wl,--no-undefined -Wl,C:/Progra~1/MATLAB/R2016b/extern/lib/win64/mingw64/exportsmexfileversion.def -o myFile.mexw64 myFile.o (various .o files linked in here) -pthread -LC:/Progra~1/MATLAB/R2016b/bin/win64 -LC:/Progra~1/MATLAB/R2016b/extern/lib/win64/mingw64 -lmex -lmx

mex我注意到命令尝试的内容和我们所做的事情有以下差异:

目标文件的区别:

  • 我们正在使用 mingw G++ 编译器,他们使用 TDM (交换没有解决它)
  • 它们包括 simulink/include,我们不包括。(添加并没有解决它)
  • 他们使用-O。这是否意味着-O1?-O2?-O3?不清楚。

mex 文件的区别:

  • 我们正在使用 mingw G++ 编译器,他们使用 TDM (交换没有解决它)
  • 他们有 -s,我们没有(尝试添加它,没有解决任何问题)
  • 他们有 -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas,我们没有。(尝试添加它们,没有解决任何问题)
  • 他们没有 -lmex -lmx (删除并没有修复它)
  • 我们有 -Wl,-Bsymbolic 他们没有(删除它并没有解决任何问题)

晦涩难懂的编译器问题不是我的专长。有人对这里可能出现的问题有任何建议吗?

0 投票
1 回答
1790 浏览

c - 如何设置 OpenMP?

我正在使用 Codeblocks 并且必须运行 OpenMP C 程序。因此,我在代码块(编译器设置)中添加了标志 -fopenmp,现在收到错误“ mingw32-g++.exe:错误:libgomp.spec:没有这样的文件或目录

所以在网上搜索了一下这个错误后,我下载了 TDM-GCC(安装在 C:\TDM-GCC-64 中)。但是代码块上仍然显示相同的错误。

我究竟做错了什么?

这是构建日志:

mingw32-gcc.exe -c "D:\Language Files\MatrixMultiplication.c" -o "D:\Language Files\MatrixMultiplication.o"

mingw32-g++.exe -o "D:\Language Files\MatrixMultiplication.exe" "D:\Language Files\MatrixMultiplication.o" -fopenmp

mingw32-g++.exe:错误:libgomp.spec:没有这样的文件或目录

0 投票
0 回答
607 浏览

c - 在 WinAPI 中制作一个无边框可调整大小的窗口

我想使用 TDM-GCC 编译器用 c 语言制作一个无边框可调整大小的窗口。

我使用内置的 TDM-GCC 库和 CreateWindowEX(...) 函数来制作一个窗口。

我知道我可以用它WS_POPUP | WS_SIZEBOX | WS_MAXIMIZEBOX | WS_MINIMIZEBOX来制作无标题的可调整大小的窗口;但我想制作没有边框的无边框窗口。

谢谢你。

0 投票
1 回答
601 浏览

c - How to resize the height of title bar in Windows API?

I wanna increase height of titlebar of my app which written in c language using TDM_GCC libraries. I didn't mean change the height of titlebar of all apps in windows. Only my app. What I want like this:

0 投票
1 回答
804 浏览

c - 我在哪里可以下载 dwmapi.lib?

使用

DwmExtendFrameIntoClientArea

函数我们必须有dwmapi.lib库。

我在我的电脑中搜索了这个库,但我的电脑没有找到它。

那么在哪里可以下载呢?

没有它,我的应用程序将无法正确编译;并向我展示了一些错误:

我正在使用 TDM_GCC 编译器用 c 语言编程。

请帮我。