GNU LD - 无效的子系统类型 Windows

GNU LD - invalid subsystem type Windows

当我从应用程序 (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 显示无错误。

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

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

所以 只需将您的文件夹 Windows 重命名为 Win