【问题标题】:GNU LD - invalid subsystem type WindowsGNU LD - 无效的子系统类型 Windows
【发布时间】:2016-10-27 23:14:30
【问题描述】:

当我从应用程序 (wxWidgets C++) 运行 Windows 批处理文件时,GNU LD 显示错误

C:\..path..\bin/ld.exe: invalid subsystem type Windows

当双击同一个 Windows 批处理文件时,GNU LD 工作!

LD.bat

@echo off 

Set PATH=C:\AAA\BBB\GCC\bin

"C:\AAA\BBB\GCC\bin\g++.exe" -L"C:\AAA\BBB\GCC\lib\gcc_lib" -o "C:\Users\XXX\Desktop\Test.exe" "C:\Users\XXX\Desktop\Test.obj" "C:\Users\XXX\Desktop\Test.res" -s -mthreads -lwxmsw30u_core -lwxbase30u ... -mwindows -static-libgcc -static-libstdc++ -finput-charset=utf-8 -Wl,--gc-sections -Os 2> "C:\Users\XXX\Desktop\Test.log"

App.cpp

wxArrayString output;
wxArrayString errors;
wxString CMD;
CMD = "C:\\Users\\XXX\\Desktop\\Test.bat";
wxExecute (CMD, output, errors);

如果应用程序执行批处理文件 ==> Test.log 显示错误。

如果通过双击执行批处理文件 ==> Test.log 显示 NO 错误。

问题已通过删除 -mwindows 标志得到解决,但如您所知,可执行文件未链接为 GUI。那么 GNU LD 有什么问题?

【问题讨论】:

  • 比较两种启动模式的环境差异。
  • 不,在我的情况下,环境不是问题,它是相同的,甚至使用不同的环境进行测试 LD 无法与“-mwindows”标志链接!

标签: c++ batch-file linker ld


【解决方案1】:

解决方案: 经过数小时的搜索……我知道您的路径是否包含单词 Windows "%PATH%\Windows\.." GNU LD 显示错误!,是的,它是一个错误。

所以只需将您的文件夹重命名WindowsWin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2019-11-28
    • 1970-01-01
    相关资源
    最近更新 更多