skylee03
V2EX  ›  C++

无法在 32 位 XP 系统上正常使用 TDM64-GCC 9.2.0 编译

  •  
  •   skylee03 ·
    skylee03 · Jul 16, 2020 · 3820 views
    This topic created in 2302 days ago, the information mentioned may be changed or developed.

    当我尝试在我的 64 位 Windows 10 计算机上使用 TDM64-GCC 9.2.0 编译一个仅包含单行代码int main() {}的 C++程序时,它工作得很好。但是在一个 32 位 Windows XP 系统上,它产生了如下错误信息:

    C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/32/libstdc++.a: file not recognized: file format not recognized collect2.exe: error: ld returned 1 exit status

    然而,当我使用先前版本的 TDM64-GCC (例如,4.9.2 )编译相同的程序时,它在 32 位 Windows XP 系统和 64 位 Windows 10 操作系统上都工作得很好。

    我应当做什么来使得 TDM64-GCC 9.2.0 编译器在 32 位 Windows XP 系统上正确工作?

    GitHub issue

    Supplement 1  ·  Jul 16, 2020

    补充说明:

    关于XP系统:我自己并不用XP系统,但是我目前正在 GitHub 上维护一个 Dev-C++ 的个人版本 My-Dev-Cpp,需要照顾到仍在使用XP系统的用户。之前由于 TDM-GCC 长时间停更,我把自带的编译器换成了 SF 上 MinGW-w64 的发行版。前几个月 TDM 又诈尸了,所以打算把自带编译器换回 TDM,不过在 XP 上测试的时候出了上述的问题。

    关于“TDM64-GCC”当中的“64”:TDM64-GCC编译器本体还是32位的,只是能同时输出64位和32位可执行程序。否则如果如部分回复所理解的那样,编译器是64位的,那它根本就无法在32位系统上运行,更不会像我描述的那样报错。

    21 replies  •  2020-07-17 20:39:37 +08:00
    yingfengi
    yingfengi
    Jul 16, 2020
    1
    我很好奇为何还要使用 xp
    xcstream
    xcstream
    Jul 16, 2020
    2
    vc6 嘿嘿
    darer
    darer
    Jul 16, 2020
    3
    我很好奇为何还要使用 xp
    darer
    darer
    Jul 16, 2020
    4
    等会… TDM64-GCC 9.2.0 在 32 位 Windows XP 系统上正确工作? 那么大个 64 看不见吗
    ysc3839
    ysc3839
    Jul 16, 2020 via Android
    5
    x86_64-w64-mingw32 这意思是跑在 64 位系统上的 32 位程序编译器吧,你的 Windows XP 是 64 位的?
    precisi0nux
    precisi0nux
    Jul 16, 2020 via iPhone
    6
    楼主是外国人然后机翻的?
    skylee03
    skylee03
    OP
    Jul 16, 2020
    7
    @darer “然而,当我使用先前版本的 TDM64-GCC (例如,4.9.2 )编译相同的程序时,它在 32 位 Windows XP 系统和 64 位 Windows 10 操作系统上都工作得很好。”
    skylee03
    skylee03
    OP
    Jul 16, 2020
    8
    @ysc3839 “然而,当我使用先前版本的 TDM64-GCC (例如,4.9.2 )编译相同的程序时,它在 32 位 Windows XP 系统和 64 位 Windows 10 操作系统上都工作得很好。”
    skylee03
    skylee03
    OP
    Jul 16, 2020
    9
    @precisi0nux 先在 GitHub 上用英文发的 issue,然后翻成中文发在这里,看起来可能比较奇怪😅
    skylee03
    skylee03
    OP
    Jul 16, 2020
    10
    @yingfengi 我在 GitHub 上维护一个 Dev-C++的 fork,之前由于 TDM-GCC 长时间停更,我把自带的编译器换成了 SF 上 MinGW-w64 的发行版。前几个月 TDM 又诈尸了,所以打算把自带编译器换回 TDM,不过在 XP 上测试的时候出了上述的问题。
    skylee03
    skylee03
    OP
    Jul 16, 2020
    11
    我在 GitHub 上维护一个 Dev-C++的 fork,之前由于 TDM-GCC 长时间停更,我把自带的编译器换成了 SF 上 MinGW-w64 的发行版。前几个月 TDM 又诈尸了,所以打算把自带编译器换回 TDM,不过在 XP 上测试的时候出了上述的问题。
    darer
    darer
    Jul 16, 2020
    12
    一个汉化 Codeblocks 的人的说法是 GCC 从某一个版本开始不支持 XP 系统了
    leavelet
    leavelet
    Jul 16, 2020
    13
    虽然没有用过,但是感谢楼主考虑周到
    我们学校机房还是十年前的电脑,xp 系统
    而且是校 OI 的主力机房(尽管大家都自带电脑)
    ysc3839
    ysc3839
    Jul 16, 2020 via Android
    14
    @skylee03 完全有可能先前版本是 32 位的,当前版本改为了 64 位的。
    Cooky
    Cooky
    Jul 16, 2020
    15
    在 win10 上编译,在 XP 上测试
    ysc3839
    ysc3839
    Jul 16, 2020
    16
    刚刚下载了 4.9.2 和 9.2.0,经过确认都是 32 位的可执行文件,说明是别的问题。
    flynaj
    flynaj
    Jul 17, 2020 via Android
    17
    windows XP 上就用老版本就行,注明就可以,还有现在用 WinXP 的人其实不多,学校在老的电脑也可以装 win7 。
    skylee03
    skylee03
    OP
    Jul 17, 2020
    18
    @ysc3839 当然,不然 G++根本无法运行,而不会报错。
    skylee03
    skylee03
    OP
    Jul 17, 2020
    19
    @flynaj 不过 TDM 的主页上说它支持 XP,所以如果不是他骗人,那就是我的问题。
    flynaj
    flynaj
    Jul 17, 2020
    20
    @skylee03 #19 只是学习一下 C 语言的话,这个 Tiny C Compiler 就够,1M 不到。https://bellard.org/tcc/
    skylee03
    skylee03
    OP
    Jul 17, 2020
    21
    @flynaj 我主要是为了让我的 Dev-C++项目照顾到 XP 用户。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1521 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.