问题标签 [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 - 如何在 Windows 上为我的操作系统编译和链接 C 和 ASM
我的 32 位保护模式操作系统项目Sinatra有问题。我可以将源代码编译为目标文件,但我不知道如何将它们链接在一起。我在 Windows 上使用NASM和TDM-GCC 。我已经修复了我的代码的问题,因此它可以编译。为简洁起见,我已删除评论。
我的文件boot.asm
:
我的文件JSinatra.h
:
我的文件JSinatra.c
:
我需要从绝对地址开始加载我的操作系统0x100000
。如何正确编译和链接我的代码以创建二进制图像?
c++ - 在 Windows XP 和 CodeBlocks 上延迟加载 DWMAPI
我有一个项目,我一直在努力为 Windows (XP) 构建一个月。该项目使用 gtkmm-3、C++ 和最新的 GCC-TDM 编译器。我的 IDE 是 CodeBlocks 13.14。
我正在取得进展,但是,我现在被这个错误消息挂断了......
ld.exe cannot find -ldwmapi
现在,DWMAPI 是仅在 Windows Vista 及更高版本上可用的 DLL。根据我的研究,如果某些 DLL 存在于某些系统上,但不存在于其他系统上,您可以延迟加载某些 DLL。
问题是,我不知道如何在 CodeBlocks 上执行此操作。该-z lazy
选项无法实现这一点。如果延迟加载是不可能的,我该如何绕过dwmapi
依赖。一定有办法!
完整构建命令:(底部错误)
c++ - TDM-GCC 引发错误:对我从未调用过的方法的未定义引用
这与在 Windows 7 上运行时 Dev-C++ 附带的编译器“TDM-GCC 4.9.2 64-bit Release”有关。同样的事情也发生在 64 位版本上。“编译器选项”中的“调用链接器时添加以下标志”设置为-static-libgcc -lws2_32
,“调用编译器时添加以下标志”为std=c++11
。
不幸的是,我无法获得比这更多的信息,因为这是一台非常非常锁定的计算机。
回到家后,我会在那里进行测试并编辑任何新信息。
一个测试文件:
编译时,它给出以下错误:
据我所知,它调用GetProcessImageFileNameA
而不是GetProcessImageFileName
因为 a #define
in psapi.h
:
__MINGW_NAME_AW(func)
是#define
d in _mingw_unicode.h
as func##A
,如果我理解正确的话,这就是新方法名称的来源。
Back in psapi.h
,DWORD WINAPI GetProcessImageFileNameA(HANDLE, LPSTR, DWORD);
已声明,但我在任何地方都没有找到它的定义,Dev-C++ 也不能。我相当肯定这就是问题所在。
我该如何解决?我对任何事情都持开放态度,包括切换编译器或 IDE,只要我可以将我使用的任何东西放在闪存驱动器上并尽可能少地携带它,并且最终结果不需要管理员运行权限。
windows - 如何使用 Web 安装程序在 Windows 上更新 TDM GCC?
功能列表指出:
“它有一个易于使用的单文件安装程序,只需单击几下即可创建工作安装,并且可以在新软件包可用时更新该安装。”
很好,但是如何进行更新?如果我运行安装程序并“管理”我的安装,则根本没有任何更新。
c++ - 为什么 std::sqrt() 不能在 C++ 中的双精度数据上正常工作?
这是一个简单的 C++ 代码,我在 Windows 8.1 64 位Intel 内核 i-7 机器上使用TDM-GCC 5.1 32 位(gcc-5.1.0-tdm-1-core) 进行编译。
但是在运行时,它会给出以下输出
但是,它可以在32 位机器上与 TDM-GCC 32 位编译器一起正常工作。
此外,当我将数据类型更改为float时,它在 32 位和 64 位计算机上都可以正常工作。
这里有什么问题?
c++ - C++:使用使用 g++ 和 -m32 选项构建的 c++ 库在 Msys 下构建 wxWidgets 项目时出现 ld 不兼容错误
我有一个包含外国 C++ 代码(CoolProp)的 C++ 项目。这个外国代码我已经编译为静态库。编译器是带有 -m32 选项的 TDM-GCC Vers 5.1.0。我使用带有 -m32 选项的 TDM-GCC Vers 5.1.0 再次调用我的 C++ 代码。我能够编译并运行一个小型命令行测试程序。整个编译序列(Windoes 命令行提示符或 MSYS 1.0):
- 封装流体流
g++ -c -o build/fluidflow.o -LC:/CoolProp/5.1.2/CoolProp/build -I./include -IC:/CoolProp/5.1.2/CoolProp/include src/fluidflow.cpp -lCoolProp -m32 && ar rcs build/libfluidflow.a build/fluidflow.o
- 封装公式
g++ -c -o build/formulae.o -I./include src/formulae.cpp -lm -m32 && ar rcs build/libformulae.a build/formulae.o
- 封装风机盘管
g++ -c -o build/fancoil.o -I./include src/fancoil.cpp -lm -m32 && ar rcs build/libfancoil.a build/fancoil.o
- 封装电路
g++ -c -o build/circuit.o -L./build -LC:/CoolProp/5.1.2/CoolProp/build -I./include src/circuit.cpp -IC:/CoolProp/5.1.2/CoolProp/包括 -lm -lfancoil -lformulae -lfluidflow -lCoolProp -m32 && ar rcs build/libcircuit.a build/circuit.o
- 封装单元
g++ -c -o build/cell.o -L./build -LC:/CoolProp/5.1.2/CoolProp/build -I./include src/cell.cpp -IC:/CoolProp/5.1.2/CoolProp/包括 -lm -lcircuit -lfancoil -lformulae -lfluidflow -lCoolProp -m32 && ar rcs build/libcell.a build/cell.o
- 测试程序,流体流量和风机盘管套件
g++ -o test/test_simple.exe -L./build -LC:/CoolProp/5.1.2/CoolProp/build -I./include test/test_simple.cpp -IC:/CoolProp/5.1.2/CoolProp/include - lm -lcell -lcircuit -lfancoil -lformulae -lfluidflow -lCoolProp -m32 && cd test && test_simple.exe
接下来我尝试用 wxWidgets Vers 3.0 构建一个 GUI 程序。至于我没有调用我的库,我可以使用 g++ fancoil_gui.cpp wx-config --cxxflags --libs
-o fancoil_gui 使用 msys 编译当我尝试调用我的库时,例如 libformulae.a/formulae.h 我使用 -m32 选项并且编译总是结束出现错误,例如
c:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld。 exe:在搜索 -lwxregexu-3.0 时跳过不兼容的 C:/msys/1.0/local/lib/libwxregexu-3.0.a
操作系统为 64 位 Windows 7
如何在不产生错误的情况下做到这一点?
c++11 - 错误:“fprint”的多个定义 - 使用 SDL_ttf
我有一个使用此代码的自定义库(https://www.dropbox.com/s/iwft7snjmntf160/SoASpriteFont.zip?dl=0)。链接代码是为 Visual Studio 编写的;我在 Windows 上使用 CodeLite。
它有一个 SpriteFont.cpp 使用fprintf
.
将 SpriteFont 作为其一部分的静态库可以自行编译并*.a
非常愉快地生成。
但是,当我通过其他代码使用 SpriteFont 时,出现链接器错误(如果我没记错的话):
我通读了一遍,发现了一些类似的情况,但我没有设法解决这个问题。
听起来 TDM-GCCfprint
在其 '中重新定义的方式存在问题stdio.h
,但我看不出如何。经过进一步检查,我认为问题可能出在 SpriteFont 使用的SDL_ttf上。
另外,我尝试过使用其他函数stdio.h
,它们编译得很好;问题似乎只是fprintf
我试图创建一个准系统程序来说明这个问题。希望能帮助到你。希望它是一个 CodeLite 项目的事实不会成为刺激的根源。如果我可以提供更多信息或代码,请询问。
python - 配合mingw32安装xgboost
好的,所以我正在使用此链接中的答案安装 xgboost:- 如何在 python 中安装 XGBoost 包
我收到以下错误消息:
请帮忙。我也尝试在 xgboost 文件夹中运行它,它仍然给出相同的错误消息。我还安装了 64 位版本的 TDM-GCC。
c++ - GDB 没有启动
今天我运行 QtCreator 来制作一个简单的控制台应用程序并遇到了一个问题。该项目构建正常,然后“启动调试器”开始,但不幸的是,没有完成。我看到带有光标的控制台并且程序没有运行。
尝试 Helloworld 示例 - 结果相同。在代码块中尝试 helloworld 示例 - 相同。我什至尝试通过命令行 ( g++ -g hworld.cpp -o hworld.exe
) 进行编译。然后gdb hworld.exe
,run
- 一样。什么都没有发生,只是光标闪烁。
我已经尝试重新安装所有这些人员(C::B、Qt、TDM-GCC),但没有帮助。
原因可能是我几天前安装的适用于 Windows 的 Oracle MySQL。我使用了 MySQL Installer 5.7.12,它安装了很多不同的人员。
我会非常感谢帮助,因为这真的很麻烦,我不知道该怎么办。我需要 MySQL 和 C++ IDE。
c++ - C++ - to_string 在 Windows 中的 Code::Blocks 中不能跨多个编译器(MinGW、MinGW64、TDM GCC)工作
我越来越绝望了。在使用 Code::Blocks 的 Windows 7 上,我安装了大约六种 MinGW / TDM-GCC 变体,但我无法使用 to_string 将我的 int 转换为字符串,例如:
输出 1544173669
我已经看到各种关于 to_string 在早期版本的 MinGW(v4.7 - 4.9 之前的任何地方)中不起作用的错误报告,但我尝试了最新版本无济于事。我已经按照这些说明安装了最新的 TDM-GCC,适当地更改了工具链和调试器设置。
我所要求的只是关于为什么这不起作用的某种解释和解决方案。我可以根据需要提供任何进一步的信息。