- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有一个使用 OpenCV 的简单计算机视觉应用程序。我在主机系统上编译它而不是部署到 NVidia Jetson TK1(这里没问题,我使用 Qt Creator 和配置的工具包)。我使用 sshfs
将 Jetson 的文件系统根目录挂载到主机 /mnt/sysroot_tegra_tk1
。
问题:我刚刚在 Jetson 上编译了 OpenCV 3.2 版(安装到开发板 /usr/local/lib
中)。 /usr/local
中仍然有系统OpenCV version 2.4。我不知道如何在主机系统上配置 qmake 来交叉编译和链接新版本而不是 Jetson 的系统默认版本。
我的 .pro 文件:
QT += core
QT -= gui
CONFIG += c++11
TARGET = markerExtractionChromakey
CONFIG += console
CONFIG -= app_bundle
unix: INCLUDEPATH += /usr/local/include
unix: QMAKE_LIBDIR = /usr/local/lib
unix: LIBS += -lopencv_imgproc\
-lopencv_core.so\
-lopencv_video\
-lopencv_highgui\
-lopencv_gpu
TEMPLATE = app
HEADERS += cameraworker.h
SOURCES += main.cpp \
cameraworker.cpp
target.path = /home/ubuntu/alan/markerExtractionChromakey
target.files += markerExtractionChromakey
INSTALLS += target
项目联动输出:
/usr/bin/arm-linux-gnueabihf-g++ -Wl,-rpath-link,/mnt/sysroot_tegra_tk1/usr/lib
-Wl,-rpath-link,/mnt/sysroot_tegra_tk1/usr/lib/arm-linux-gnueabihf
-Wl,-rpath-link,/mnt/sysroot_tegra_tk1/lib/arm-linux-gnueabihf -mfloat-abi=hard
--sysroot=/mnt/sysroot_tegra_tk1 -Wl,-rpath,/usr/local/qt5/lib
-o markerExtractionChromakey main.o cameraworker.o -L/usr/local/lib
-lopencv_imgproc -lopencv_core -lopencv_video -lopencv_highgui
-lopencv_gpu -L/opt/qt5_for_tegra/qt-everywhere-opensource-src-5.5.1/qtbase/lib
-lQt5Core -L/mnt/sysroot_tegra_tk1/usr/lib
-L/mnt/sysroot_tegra_tk1/lib/arm-linux-gnueabihf
-L/mnt/sysroot_tegra_tk1/usr/lib/arm-linux-gnueabihf -lpthread
最佳答案
问题解决了。关键时刻:
-rpath/-rpath-link
告诉链接器在哪里寻找。默认 -rpath
<path to Qt>/qt-everywhere-opensource-src-5.5.1/qtbase/mkspecs/devices/linux-jetson-tk1-g++/qmake.conf
中指定的 Jetson 位置.只需在默认目录之前添加您的目录:
QMAKE_INCDIR += \
$$[QT_SYSROOT]/usr/local/include \
$$[QT_SYSROOT]/usr/include \
$$[QT_SYSROOT]/usr/include/arm-linux-gnueabihf
QMAKE_LIBDIR += \
$$[QT_SYSROOT]/usr/local/lib \
$$[QT_SYSROOT]/usr/lib \
$$[QT_SYSROOT]/lib/arm-linux-gnueabihf \
$$[QT_SYSROOT]/usr/lib/arm-linux-gnueabihf
QMAKE_LFLAGS += \
-Wl,-rpath-link,$$[QT_SYSROOT]/usr/local/lib \
-Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib \
-Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib/arm-linux-gnueabihf \
-Wl,-rpath-link,$$[QT_SYSROOT]/lib/arm-linux-gnueabihf
关于qt - QMake:如何选择要链接到的库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411688/
在我的源树中,我有一堆资源,我想用 make install 将它们复制到我定义的目标路径。由于资源树有很多很多子目录,我希望 qmake 递归查找所有文件。 我试过: resources.pa
我想配置我的 qmake,这样我的可执行文件就会进入 ./build/debug(或发布)。我已使用以下代码成功完成此操作: CONFIG(debug, debug|release) { DE
我想使用 Qt 制作一个 GUI 应用程序,但无法开始。我在编辑器中编写了以下代码: #include #include int main(int argc, char *argv[]) {
我已经在 qt/c++ 中创建了一个应用程序 浏览器/Browser.pro 要启动浏览器,我需要一个代理。我已经创建了一个代理并将其存储在浏览器文件夹中 Browser/Browser.pro
我厌倦了编译 Qwt (或与此相关的任何其他 Qt 项目)每次发生变化时,例如 Qt 或体系结构的版本。所以: 我想将 Qwt 的 make 文件添加到我的项目中,以便编译后的 Qwt 文件进入我的影
我有一个Qt 程序。当我运行 qmake -project 和 qmake 时,它运行良好。 但是,现在我该如何运行我的程序呢? 谢谢。 最佳答案 make它,如果你在 Linux 中使用它。使用 n
我正在使用 qmake 和 Visual Studio。在发布版本中,qmake 将/GL 和/O2 标志添加到所有项目,我需要为我的整个 Qt 项目中的某些库删除这两个标志。有办法吗? 最佳答案 我
...它应该做但没有做。 这对我来说是 qmake 的主要挫折之一。 qbs 是我们 Qt 的 future ,但现在我们坚持使用 qmake。那么,有什么办法呢? 最佳答案 我滥用 QMAKE_EX
我正在使用 PRE_TARGETDEPS生成源文件,我将生成的源文件添加到 SOURCES用于编译。 我的生成器的输出显然在 qmake 运行时不存在,所以 qmake 输出 WARNING: Fai
我正在尝试通过 ubuntu 中的命令行编译 Qt 应用程序。对我来说,“which qmake”给出了/usr/bin。我在 PATH 变量中给出了 Qt/bin 路径。如何将qmake路径更改为Q
当使用 QMAKE_CXX = clang++ 强制在安装了 gcc 和 clang 的系统上使用 clang 时,clang++ 用于编译 .cpp 文件,但 g++ 是用于最后的链接。这在使用 U
我有一个共享库(没有 QT 依赖)[库 B],它链接到另一个共享库(也没有 QT 依赖)[库 A]。 我正在使用 Qmake 和 QT Creator 1.3。问题是,当我构建库 B 并在可执行文件上
有没有办法为 qmake 中的不同目标指定单独的编译选项? 例如: QMAKE_CXXFLAGS += -O SOURCES += file1.cpp QMAKE_CXXFLAGS += -st
我加了 version.target = version.h version.commands = bash generate-version.sh QMAKE_EXTRA_TARGETS += ve
qmake允许通过这样的命令行界面提供变量: qmake "CONFIG += release" "MY_VAR = hello" 所以我可以使用 $$MY_VAR里面.pro文件。但是有可能以这种方
我有一个看起来像这样的 qmake 项目: TEMPLATE = lib CONFIG += dll TARGET = mydll SOURCES += ... HEADERS += .... 现在我
我在弄清楚 qmake 如何处理依赖于另一个静态库的静态库的包含依赖项时遇到了一些问题。 我的文件夹结构如下: --- src/ lib1/ src/ (.pro,*.h,*.cpp) lib
我试图将我的项目从一台带有 qt4 的计算机转移到另一台我刚安装 qt5 的计算机,但我遇到了一个非常奇怪的问题。 qmake 突然找不到我的任何源文件或头文件。 这是一个极简主义的例子: QT
如 Undocumented qmake 中所述,我在我的 qmake 项目文件中声明了一个额外的编译器: TEST = somefile.h test_c.output = ${QMAKE_VAR_
这行在qmake .pro文件中是什么意思? TEMPLATE=aux 它是not documented,但是现在我测试它似乎不会引起错误或任何错误,并且我已经看到它在.pro中使用。 最佳答案 Go
我是一名优秀的程序员,十分优秀!