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
。
当我从应用程序 (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
。