我正在尝试从以下存储库的MacOS 10.13上的源代码编译Qt Creator: https://github.com/qt-creator/qt-creator
我按照README.md中的说明进行操作,但没有成功。 我很可能错过了一些东西。
我已经完成的步骤:
brew install --with-toolchain llvm
brew install qbs
安装了QBS
(也将qt 5.11.1酿造为/usr/local/opt/qt
的依赖项)/Users/username/builds/qtcreator_src
/Users/username/builds/qtc_build
在该目录中运行以下命令:
export LLVM_INSTALL_DIR=/usr/local/opt/llvm
export QBS_INSTALL_DIR=/usr/local/opt/qbs
PATH=/usr/local/opt/qt/bin:/usr/local/opt/llvm/bin:$PATH
qmake -r /Users/username/builds/qtcreator_src/4.7
make
大约40分钟的编译后,出现以下错误:
../../../../qtcreator_src/4.7/src/plugins/qbsprojectmanager/customqbspropertiesdialog.cpp:29:10: fatal error: 'qbs.h' file not found
#include <qbs.h>
(我检查了文件位于/usr/local/opt/qbs/include/qbs
目录中。)
还有一个问题。如果我使用make -j8
,则可以加快构建过程,但是
我最终遇到以下晦涩的错误:
mv -f libDebugger.dylib ../../../bin/Qt\ Creator.app/Contents/PlugIns/
make[1]: *** [sub-plugins-make_first-ordered] Error 2
我在上面的控制台输出中找不到其他错误消息,也找不到
任何error.log
个文件。
P.S。这是来自github README.md的原始构建说明:
# Optional, needed for the Clang Code Model if llvm-config is not in PATH:
export LLVM_INSTALL_DIR=/path/to/llvm (or "set" on Windows)
# Optional, needed to let the QbsProjectManager plugin use system Qbs:
export QBS_INSTALL_DIR=/path/to/qbs
# Optional, needed for the Python enabled dumper on Windows
set PYTHON_INSTALL_DIR=C:\path\to\python
cd $SOURCE_DIRECTORY
qmake -r
make (or mingw32-make or nmake or jom, depending on your platform)
不需要安装(“进行安装”)。但是,可以使用
make install INSTALL_ROOT=$INSTALL_DIRECTORY
更新2: 从PATH排除Qt后,我收到另一个错误:
In file included from ../../../../qtcreator_src/4.7/src/plugins/qbsprojectmanager/customqbspropertiesdialog.cpp:29:
/usr/local/Cellar/qbs/1.12.0/include/qbs/qbs.h:63:10: fatal error:
'tools/settingsrepresentation.h' file not found
#include "tools/settingsrepresentation.h"
更新3:我设法使用从构建目录发出的以下命令来构建Qt Creator:
export LLVM_INSTALL_DIR=/usr/local/opt/llvm
/usr/local/opt/qt/bin/qmake /Users/username/builds/qtcreator_src/4.7
make
但是,即使构建过程已完成且没有错误,该应用程序仍未运行:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libBookmarks.dylib 0x0000000115166cb0 Bookmarks::Internal::BookmarksPlugin::~BookmarksPlugin() + 32
1 libExtensionSystem.4.7.0.dylib 0x000000010b58b3eb ExtensionSystem::Internal::PluginSpecPrivate::kill() + 27
2 libExtensionSystem.4.7.0.dylib 0x000000010b576778 ExtensionSystem::Internal::PluginManagerPrivate::loadPlugins() + 888
3 org.qt-project.qtcreator 0x000000010b558159 main + 13353
4 libdyld.dylib 0x00007fff7e352115 start + 1
答案 0 :(得分:1)
Qt肯定不应该走这条路,它是多余的。您可以同时存在多个Qt版本,可以通过调用各自的qmake来选择它们。 LLVM是否应该-不确定。 qmake的-r
选项用于项目模式,不需要。
cd build_dir
/qt/bin/qmake /path/to/sources
make
使用qbs的全部目的是仅用qbs代替qmake + make。首先,告诉qbs您要使用的Qt版本(只需执行一次):
qbs setup-qt /qt/bin/qmake myqt
qbs config defaultProfile myqt
当然myqt
可以是您想要的任何形式。
然后创建创建者:
cd build_dir
qbs -f /path/to/sources