我需要为项目提供一些模块.
现在,它在QT目录中查找它们(我已将其安装在其中$HOME),但我想在其中进行搜索而不是它/usr/lib/x86_64-linux-gnu/qt5/qml/.
我曾尝试:
一)定义QML_IMPORT_PATH的.bashrc-没有发挥出来
b)复制所需的模块$HOME/Qt5.5.1/Tools/QtCreator/bin/qml/:
在这里我们有不同的东西.如果我打开.qml文件 - 它不会下划线import(这没关系).但是,如果我用控制台运行可执行文件 - 相同的消息module org.bla.bla is not installed.
所以,如果复制没有帮助,也许我不得不让QtCreator(或其他人)在适当的文件夹中搜索模块,但是如何?
UPD.
嗯,你可以定义路径到您的模块,QML2_IMPORT_PATH(不只是QML,但QML2).正如我上面提到的,我复制了模块文件夹,$HOME/Qt5.5.1/Tools/QtCreator/bin/qml/其中完全错误!正确的方法是复制它$QT_HOME/5.5/gcc_64/qml/.它现在运行良好,但我不能说它是如何工作的相同.不幸的是,这与我提出的问题无关.因此,我不会要求其他人回答我的问题,但在发现真正的问题并在此提及之前不会关闭它,所以我可以帮助别人.
这是对@Tom Deblauwe 答案的改进,允许将系统特定的本地设置保留在存储库的 makefile 之外。它假设您使用 QT Creator 作为 IDE。
\n在 Qt Creator 中,打开“项目”侧栏选项卡,然后转到“构建并运行 \xe2\x86\x92 [您的构建配置条目] \xe2\x86\x92 Build \xe2\x86\x92 CMake”。
\n在您找到的 CMake 配置设置列表中,QML_IMPORT_PATH根据您的系统设置设置的值。多个目录\n用“ ;”分隔。
您还可以在存储库的CMakeLists.txtmakefile 中提供一些常见的默认值,以便具有常见设置的用户不需要将其QML_IMPORT_PATH. 下面的代码不会覆盖用户的QML_IMPORT_PATH,而是附加到它的后面。您可以将以下内容添加到CMakeLists.txt:
# Directories where Qt Creator can find QML files.\n# (Not needed for builds, but makes Qt Creator code completion happy.)\nlist(APPEND QML_IMPORT_PATH "/example/path/to/qml")\nlist(APPEND QML_IMPORT_PATH "/second/example/path/to/qml")\n\n# Prevent adding duplicate values at each run of CMake.\nlist(REMOVE_DUPLICATES QML_IMPORT_PATH)\n\n# The variable is cached in ${BUILD_DIR}/CMakeCache.txt. We need FORCE to \n# change it there immediately. Also, add a comment to the cache file.\nset(QML_IMPORT_PATH ${QML_IMPORT_PATH}\n CACHE STRING "Qt Creator 4.1 extra qml import paths"\n FORCE\n)\nRun Code Online (Sandbox Code Playgroud)\n运行 CMake 后,QML_IMPORT_PATH现在是用户定义的值加上CMakeLists.txt附加到其上的一些定义的值。步骤 1-2 中的 Qt Creator 的 CMake 配置设置仍将在表中显示用户的值。但是当鼠标悬停在该值上时,完整的值包括。附加部分显示在弹出窗口中。
使用新的和即将推出的QtCreator 4.1,您将能够做到这一点.只需QML_IMPORT_PATH在CMake缓存中设置即可.如果您有多个路径,请将它们与;一个列表在CMake中完成的方式分开.
list(APPEND QML_DIRS "dir1")
list(APPEND QML_DIRS "dir2")
set(QML_IMPORT_PATH "${QML_DIRS}" CACHE STRING "Qt Creator 4.1 extra qml import paths")
Run Code Online (Sandbox Code Playgroud)