1

目前我正在尝试在 Windows 7 下构建具有 Android 支持的 Qt 5.1 的 alpha 版本。

我按照本教程中的步骤操作。现在我正处于尝试实际构建 Qt 的地步,但我面临的问题是 mingw32-make 在包含空格的路径方面存在问题。

我只要输入 mingw32-make 就开始编译了。中间某处有输出

     mingw32-make[4]: Entering directory 'c:/work/build/qt5/qtbase/src/tools/moc' g++ -Wl,-s -Wl,-subsystem,console -o ..\..\..\bin\moc.exe .obj/release_shared/moc.o .obj/release_shared/preprocessor.o .obj/release_shared/generator.o .obj/release_shared/parser.o .obj/release_shared/token.o .obj/release_shared/main.o 
-L"C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib" -LC:/work/build/qt5/qtbase/lib -lQt5Bootstrap 
-LC:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib -luser32 -lole32 -ladvapi32
    g++: error: Files\Microsoft: No such file or directory
    g++: error: Visual: No such file or directory
    g++: error: Studio: No such file or directory
    g++: error: .NET: No such file or directory
    g++: error: 2003\SDK\v1.1\Lib: No such file or directory

问题是最后一个 -L 参数和包含的空格(和缺少引号)。

我如何让 mingw32 也将最后一个 -L 参数放在引号中以编译 Qt 5.1?

找到了解决方案:缺少的引号在 src/tools/moc/make.debug & make.release 中。qt5/config.summary 也包含此路径。手动添加引号可以让我编译(尽管它由于不同的错误而停止)。

4

1 回答 1

0

Mingw 给你一个非常明确的警告,不要在以下位置包含带空格的路径:

http://www.mingw.org/wiki/HOWTO_Specify_the_Location_of_External_Libraries_for_use_with_MinGW

(在该页面上搜索“任何带有空格的目录”)

但是我相信它使用 UNIX 约定。从以下位置更改您的路径:

"C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib"

至:

"C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/SDK/v1.1/Lib"

它可能对你有用。

如果不下载 Microsoft的连接工具并设置一个没有空格的连接,请指向该位置并更新您的构建脚本以指向该连接。

于 2013-05-29T15:25:03.747 回答