问题标签 [tdm-mingw]

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 投票
0 回答
94 浏览

python - 配合mingw32安装xgboost

好的,所以我正在使用此链接中的答案安装 xgboost:- 如何在 python 中安装 XGBoost 包

我收到以下错误消息:

请帮忙。我也尝试在 xgboost 文件夹中运行它,它仍然给出相同的错误消息。我还安装了 64 位版本的 TDM-GCC。

0 投票
1 回答
600 浏览

build - Windows 上的 C++ 构建环境

可能很难相信,但我仍然很难完全理解什么是构建环境。多年来我一直认为它是一个目录树,我的编译器可以在其中找到所有必要的头文件lib文件来构建我的项目。我从来没有真正正确地学习过这个概念,直到最近才对它有了基本的了解。

我正在使用 TDM-GCC 64 位编译器、MSYS、Windows 7 64 位。

当我构建我的库以用于我的项目时,它们都将头文件和 lib 文件放入我的 C:\mingw 目录中.. 即.. C**:\mingw\include & C:\mingw\lib**

假设我正在构建 zlib。zlib 目录将包含 lib 和 include 头文件,我的根 c:\mingw 目录还将包含这些目录中的 zlib 头文件和 lib 文件 c:\mingw\include & c:\mingw\lib 目录。

因此,当我构建需要 zlib 作为依赖项的其他库时,我最初使用以下命令: ./configure --prefix = c:\mingw 当我使用“ make ”命令(全部在 MSYS 中)构建它时,我的新库可以在 c:\mingw\include & c:\mingw\lib 目录中找到它的所有依赖项。 我做对了吗?

这就是我感到困惑的地方。 当我在使用相同编译器 TDM-GCC 64 位的 CodeBlocks IDE 中编写项目时,我是将搜索目录设置为 c:\mingw\include & c:\mingw\lib 目录还是使用 zlib 目录 c:\zlib\include 和 c:\zlib\lib 目录?

或者.....我是否应该将整个 zlib 目录放在 c:\mingw 目录中,以便我的文件路径如下所示:
c:\mingw\zlib\include & c:\mingw\zlib\lib 目录

如果我对以上所有内容都错了,我该如何在 Windows 上建立一个健壮的构建环境?

另外....为了补充我的知识空白,是否有任何书籍/教科书可以很好地解释这种事情?

我决定暂时不使用 cygwin。

很多问题;)

谢谢,对不起,长篇大论。

*******下面的后期添加*************

我在 c:\ming 中放置了一个测试文件,并使用我的 cmd 行调用了命令 gcc -v test.h (test.h 是我放置在根目录中的测试文件,用于测试我的编译器的搜索路径。这是输出:

如您所见,当使用 --prefix 时,其他包含目录: C:/mingw/lib/gcc/x86_64-w64-mingw32/5.1.0/include 被忽略。我想知道为什么 mingw 编译器会这样做。

我无法让我的编译器搜索的文件 (math.h) 甚至不在包含目录中。

0 投票
1 回答
322 浏览

c - 错误:Bloodshed Dev-C++ 5.11 中“BOOL CALLBACK _export 函数”之前的预期初始化程序

我尝试在 Bloodshed Dev-C++ 5.11 中编译以下代码:

并得到错误:

我在带有 TDM-GCC 4.9.2 32 位和 64 位编译器的 Windows XP 32 位和 Windows 8.1 64 位 + Bloodshed Dev-C++ 5.11 中遇到相同的错误。

在我使用 Bloodshed Dev-C++ 4 并编译此代码之前没有任何错误。(使用旧的 GNU GCC-2.95.2 编译器)

在带有 GNU GCC 4.9 编译器的 CODE::BLOCK 中,此代码也可以毫无问题地编译。

可能我必须更改编译器设置?

0 投票
0 回答
27 浏览

c - a.exe 终端在程序执行停止后立即关闭

我已经在我的系统上安装了 TDM-GCC 编译器。我在文本编辑器中编写我的 c 程序并使用 .c 扩展名保存它并使用 MinGW 终端中的 gcc 命令对其进行编译,并且像往常一样创建 a.exe 文件作为它的结果但是当我双击a.exe 文件并打开它会出现一个显示输出的终端,并且该终端会在程序执行结束后立即关闭...。如何在程序结束后立即停止该终端关闭?

0 投票
0 回答
801 浏览

c - 在 Windows 中编译 C:TDM 与 MinGW

我正在阅读不同的 C 编译器,并想找出在 Windows 中编译 C 程序的正确方法。我在旅途中找到了这个链接,然后我开始阅读有关 TDM 和 minGW 编译器的信息。我从阅读中获得的信息是:

  1. TDM-GCC 是一个适用于 Windows 的编译器套件。

  2. 它可以为自 Windows 98 以来的任何 Windows 版本创建 32 位或 64 位二进制文​​件。

关于minGW

Mingw-w64 于 2005 年启动,以便将 ObjectiveC 应用程序移植到 64 位 Windows。唯一支持 ObjectiveC 的针对 Windows 的编译器是 MinGW 的 GCC 编译器。

简而言之,我的理解是两者都是 Windows 的 C 编译器,并且都是独立的。但是当我安装 TDM-gcc 时,会提示选择 minGW 或 minGW-w64。那么TDM依赖于minGW?两者都不是独立的编译器?我对从不同地方阅读不同的东西感到困惑。请解释它们的相关性。上面的链接不足以让我完全理解。

0 投票
1 回答
119 浏览

windows - 通过 TDM-GCC 在 32 位 Windows 上编译 64 bt dll 的问题

我使用 32 位 Windows,而我的助手使用 64 位。我们都使用 gcc(我专门使用 tdm-gcc。据我所知,我的助手使用 qt,它也使用 gcc)。我想以一种简单的形式编写一个非常简单的插件,.dll供我的助手从她的应用程序内部使用。为此,我只需将我.dll的 for windows 32(如 32 位 XP)编译为.dll适用于 windows 64(如 win 7 或 10)。

我发现该-m64选项可以工作。但是,当我编译它并且她链接它并尝试调用我的函数时,它显示这个应用程序和.dll我制作的这个插件(在带有该-m64选项的 tdm-gcc 的 32 位窗口上)静默崩溃(程序结束并且没有生成输出)。

那有什么问题?我们正在做的测试很简单,就像导出一个只返回的函数232323并尝试在应用程序端接收和打印它 - 但仍然不起作用。我的猜测是这个 64 位.dll是错误的(依赖步行器显示对 kernel32 的依赖,它不是 32 位特定的吗?)

-m64除了让我的插件编译为 64 位并在那里正常工作之外,我还应该做些什么吗?

0 投票
1 回答
50 浏览

c - printf 没有按预期工作。有人可以解释输出吗?

我正在尝试从键盘读取两个字符串并打印它们。为什么会printf("read 1st\n")在秒后运行scanf()

0 投票
2 回答
419 浏览

c++ - 无法在 wxwidgets windows 10 中编译调试

我想跨多个平台开发应用程序。我是 wxwidgets 的新手。我想编译调试,但它会产生错误。这是我的命令结果。请帮我。到目前为止,我已经使用 wpf mvvm c# 完成了应用程序,但它只能在 windows env 中运行。所以我改用 c++,知道它可以在任何环境中编译。请帮我。

0 投票
2 回答
528 浏览

c - 从 Int 10h/AX=4F00h 检索 VESA 视频模式列表

我正在尝试开发一个概念验证操作系统。但是,在此过程中,我遇到的问题之一是 vesa 视频模式。在 vesa 告诉我们从 vbe bios 信息中获取它们并找到适合我们需要的视频模式编号之后,似乎缺少硬编码的视频模式编号。但是我无法接收视频模式,因为我不知道如何vbeFarPtr在 32 位的 C 内核中使用

这是我的内核代码:

VbeInfoBlock在接收到 int 0x10 ax=0x4f00 的信息后,我将 a 作为参数从我的第二阶段引导加载程序传递给内核

如果您不知道,则 VbeInfoBlock 定义如下

我无法理解这个问题。还有其他方法吗?还是我的方式正确但我的代码不正确?

我认为问题在于 video_modes 部分VbeInfoBlock被定义为一个段:偏移量对。我不知道如何在 32 位 C 代码中使用它。

(您可以请求我的第二阶段引导加载程序或我原来的引导加载程序,但对于这个问题,我认为没有必要)

编辑:

我在 Brendan 回答后尝试的代码

还有我的gdt

编辑2:

图片

myy 输出截图

编辑3:

我使用的代码:

和没有 itoa 的我的输出截图

编辑4:

gcc -v

C:\Users\Asus>gcc -v 使用内置规范。COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=D:/MinGW/mingw32/bin/../libexec/gcc/i686-w64-mingw32/8.1.0/lto-wrapper.exe 目标:i686-w64-mingw32 配置:../。 ./../src/gcc-8.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with -sysroot=/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,https://sourceforge.net/projects/mingw-w64CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/包括 -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/ mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/ i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/包括'LDFLAGS='-pipe -fno-ident -L/c/mingw810/i686-810-win32-dwarf-rt_v6-rev0/mingw32/opt/lib -L/c/mingw810/prerequisites/i686-zlib-static/ lib -L/c/mingw810/先决条件/i686-w64-mingw32-static/lib -Wl,--large-address-aware' 线程模型:win32 gcc version 8.1.0 (i686-win32-dwarf-rev0, Built by MinGW-W64 project)

编辑5:

不带 * 的输出屏幕截图

0 投票
0 回答
170 浏览

c - 斐波那契的 OpenMP 并行程序比顺序程序慢

我有这个顺序代码:

而这个并行代码:

openmp 并行代码比串行代码慢。我使用 tdm-gcc 7.4。我在斐波那契运行时没有打开其他程序。怎么了?