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

GNU LD - invalid subsystem type Windows

本文关键字:子系统 类型 Windows 无效 LD GNU      更新时间:2023-10-16

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

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

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

LD.bat

@echo off 
Set PATH=C:AAABBBGCCbin
"C:AAABBBGCCbing++.exe" -L"C:AAABBBGCClibgcc_lib" -o "C:UsersXXXDesktopTest.exe" "C:UsersXXXDesktopTest.obj" "C:UsersXXXDesktopTest.res" -s -mthreads -lwxmsw30u_core -lwxbase30u ... -mwindows -static-libgcc -static-libstdc++ -finput-charset=utf-8 -Wl,--gc-sections -Os 2> "C:UsersXXXDesktopTest.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有什么问题呢?

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

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