【发布时间】:2017-12-07 10:00:59
【问题描述】:
按照 OSX 的说明操作:http://doc.qt.io/qt-5/appicon.html
说明我需要做的就是将ICON = myapp.icns 添加到我的项目文件中。
我使用了我从 Qt 本身窃取的 ICNS 文件之一(换句话说,它应该可以工作,它不是转换问题)并且在运行 qmake 后构建时出现错误
make: *** No rule to make target '1.22/MyProject.icns', needed by 'myapp.app/Contents/Resources/MyProject.icns'
我经常使用 make 但对 Qt 几乎没有经验,所以我不知道它在这里试图告诉我什么(我什至不知道这些文件路径来自哪里)。 .icns 文件已添加到资源 .qrc 中,位于项目的基本目录中。
非常感谢任何帮助。谢谢!
编辑: 好的,文件路径中的空间阻止了构建。它现在可以编译并运行,但仍然没有停靠图标。
这是Simon Warta要求的grep命令的输出:
_Qt_5_1_1_clang_64bit-Debug/Makefile | grep -C 3 icns
443
444 :
445 @$(DEL_FILE)
446 @sed -e "s,@SHORT_VERSION@,1.22,g" -e "s,@TYPEINFO@,????,g" -e "s,@ICON@,myapp.icns,g" -e "s,@EXECUTABLE@,myapp,g" -e "s,@TYPEINFO@,????,g" ../myapp1.22/myapp.plist >
447 myapp.app/Contents/Resources/myapp.icns: ../myapp1.22/myapp.icns
448 @test -d myapp.app/Contents/Resources/ || mkdir -p myapp.app/Contents/Resources/
--
448 @test -d myapp.app/Contents/Resources/ || mkdir -p myapp.app/Contents/Resources/
449 @$(DEL_FILE) myapp.app/Contents/Resources/myapp.icns
450 @$(COPY_FILE) ../myapp1.22/myapp.icns myapp.app/Contents/Resources/myapp.icns
451 dist:
452 @test -d .tmp/myapp1.22 || mkdir -p .tmp/myapp1.22
[[All my source files]]
477 compiler_rcc_clean:
478 -$(DEL_FILE) qrc_myapp.cpp
479 qrc_myapp.cpp: ../myapp1.22/myapp.qrc \
480 ../myapp1.22/myapp.icns \
481 ../myapp1.22/images/splashmyapp2.png \
482 ../myapp1.22/images/splashmyapp1.png \
483 ../myapp1.22/images/About.png \
--
--
481 ../myapp1.22/images/splashmyapp2.png \
482 ../myapp1.22/images/splashmyapp1.png \
483 ../myapp1.22/images/About.png
486 /Users/EngMac/Qt5.1.1/5.1.1/clang_64/bin/rcc -name myapp ../myapp1.22/myapp.qrc -o qrc_myapp.cpp
来自 myapp.pro:
ICON = myapp.icns
QMAKE_INFO_PLIST = myapp.plist
【问题讨论】:
-
“1.22/”是您的源目录路径的一部分吗?你那里有空吗?你能发布
cat -n your-build-dir/Makefile | grep icns的输出吗? -
试试 ICON = $$PWD/myapp.icns 吗?根据我的经验,qmake 对 5.x 中的路径有点挑剔。
-
ICON = MyProject.icns在 OS X 10.9 和 10.10 上的 Qt 5 项目中运行良好。 -
最好使用以下命令来检查您的 Makefile。这将为您提供了解
make正在尝试做什么所需的所有上下文:cat -n your-build-dir/Makefile | grep -C 3 icns -
是的,目录路径中可能有空格。我周一去看看,然后汇报。感谢您的意见!