【问题标题】:Compiling wmain under cygwincygwin下编译wmain
【发布时间】:2013-01-31 08:15:40
【问题描述】:

我正在尝试使用以下主要定义编译 c++ 代码:

int wmain(int argc, wchar_t** argv)

我可以使用 Visual Studio 正确编译它,但 g++ 失败并显示以下错误消息:

g++ -municode -o l1bCorrector AappL1bCorrector/l1bCorrector.o -L/usr/local/lib -Wl,-Bstatic -lboost_system-mt -lboost_filesystem-mt -lScanexUtilities -Wl,-Bdynamic
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o): In function `main':
/usr/src/debug/cygwin-1.7.17-1/winsup/cygwin/lib/libcmain.c:39: undefined reference to `_WinMain@16'

【问题讨论】:

标签: unicode g++ cygwin main


【解决方案1】:

GCC 不支持wmain(即使是 mingw GCC,我希望它在这方面是最好的)。

如果您需要 unicode 命令行参数作为数组,您可以在 GetCommandLineW 的结果上使用 CommandLineToArgvW

【讨论】:

  • 是否可以在没有平台相关代码的情况下以任何方式使用 unicode 参数?
  • 不能同时针对 Windows 和非 Windows。我们可以在argv[..] 上使用mbrtowc,但在Windows 上,argv[..] 从一开始就已经丢失了一些信息。
  • @AntonKovalenko,这是否意味着我不能使用任何与 unicode 相关的函数,例如 CreateFileW 等?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 2012-02-29
  • 1970-01-01
相关资源
最近更新 更多