本标准在住房城乡建设部门户网站,老网站做seo能不能重新注册,什么是crm系统,惠阳网站制作公司嵌入式大赛结束了#xff0c;根据这次比赛中记的凌乱的笔记#xff0c;整理了一份龙芯2K1000LA的环境搭建过程#xff0c;可能笔记缺少了一部分步骤或者错误#xff0c;但是大致步骤可以当作参考。
一、交叉编译工具链
下载连接#xff1a;龙芯 GNU 编译工具链 | 龙芯开…嵌入式大赛结束了根据这次比赛中记的凌乱的笔记整理了一份龙芯2K1000LA的环境搭建过程可能笔记缺少了一部分步骤或者错误但是大致步骤可以当作参考。
一、交叉编译工具链
下载连接龙芯 GNU 编译工具链 | 龙芯开源社区 (loongnix.cn) 拷贝在Ubuntu下并进行解压。 然后将该目录下的文件拷贝到/opt目录下。 将解压好的工具链文件添加到环境变量中才能在之后编译 Qt 源码时 对工具链的调用位置准确无误。
1.首先打开家目录HOME下的.bashrc。 2.将export PATH$PATH:/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/bin添加到最后一行。一般来说在终端中执行的路径信息是不会保存的因此需要通过执行该语句保证下次启动时仍然保存了环境变量。 3.然后执行 source ~/.bashrc使用该语句更新环境配置 4.如果需要确认版本信息可以执行 loongarch64-linux-gnu-g -v语句 二、移植QT源码
下载QT5.15.2源码。
下载连接Index of /archive/qt/5.15/5.15.2 拷贝linux-aarch64-gnu-g 然后改为linux-loongarch64-g。
修改qmake.conf内容如下 然后建立一个sh脚本进行配置这里没有移植tslib。
./configure -prefix /home/xiaochao/Loongnix/arm-qt \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-loongarch64-g \
-optimized-qmake \
-cstd c11 \
--rpathno \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glibno \
--iconvno \
--pcreqt \
--zlibqt \
-no-openssl \
--freetypeqt \
--harfbuzzqt \
-no-opengl \
-linuxfb \
--xcbno \
--libpngqt \
--libjpegqt \
--sqliteqt \
-plugin-sql-sqlite \
-recheck-all主要是修改安装位置和平台的架构 就是对QT源码的裁剪。
移植包括tslib配置如下
toconfigure.sh
./configure -prefix /home/xiaochao/Loongnix/arm-qt \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g \
-optimized-qmake \
-cstd c11 \
--rpathno \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glibno \
--iconvno \
--pcreqt \
--zlibqt \
-no-openssl \
--freetypeqt \
--harfbuzzqt \
-no-opengl \
-linuxfb \
--xcbno \
-tslib \
--libpngqt \
--libjpegqt \
--sqliteqt \
-plugin-sql-sqlite \
-I/home/xiaochao/Loongnix/tslib-1.21/arm-tslib/include \
-L/home/xiaochao/Loongnix/tslib-1.21/arm-tslib/lib \
-recheck-all
执行配置 在make之前需要修改如下utils.h文件 修改如下 不然会报如下错误error: #error Target architecture was not detected as supported by Double-Conversion. 具体的解决办法参考如下文章(2条消息) 龙芯5000编译Qt环境报错_龙芯编译qt_芒果黑的博客-CSDN博客 出现如下的界面使用make就可以进行qt源码的交叉编译了。 编译完成如下 下面安装时建议使用超级管理员运行可能会出现权限不够的情况。 安装成功后会在sh文件配置下的目录下生成相应的文件。 交叉编译出来的QT库有以下目录 bin doc examples include lib mkspecs plugins 将交叉编译出来的文件移植到开发板的/lib目录(目录自己定)下这里其实打包lib和plugins也行的。
交叉编译的可以执行程序在运行时会连接动态库因此还需要设置在/etc/profile中添加以下环境变量由于这里并没有移植tslib配置文件如下 # qt-lib environment variables export QT_ROOT/lib/arm-qt export LD_LIBRARY_PATH$LD_LIBRARY_PATH:$QT_ROOT/lib/ export QT_QPA_PLATFORM_PLUGIN_PATH$QT_ROOT/plugins export QT_QPA_PLATFORMlinuxfb:tty/dev/fb0 export QT_QPA_FONTDIR/usr/share/fonts 若移植了tslib配置文件如下 # qt-lib environment variables export QT_ROOT/lib/arm-qt export LD_LIBRARY_PATH$LD_LIBRARY_PATH:$QT_ROOT/lib/ export QT_QPA_PLATFORM_PLUGIN_PATH$QT_ROOT/plugins export QT_QPA_PLATFORMlinuxfb:tty/dev/fb0 export QT_QPA_FONTDIR/usr/share/fonts export QT_QPA_GENERIC_PLUGINStslib export LD_PRELOAD$TS_ROOT/lib/libts.so 完成配置后执行以下命令 source /etc/profile 在虚拟机是使用qmake进行交叉编译生成了Makefile文件,然后直接make完成编译。 生成的绿色文件即为目标文件拷贝到开发板上进行测试。 三、交叉编译openssl
配置如下
#!/bin/sh
OPENSSL_LIBS-L/home/xiaochao/Loongnix/SSL/arm-ssl/lib -lssl -lcrypto \
./configure -prefix /home/xiaochao/Loongnix/arm-qt-ssl \
-openssl-linked \
-I/home/xiaochao/Loongnix/SSL/arm-ssl/include \
-L/home/xiaochao/Loongnix/SSL/arm-ssl/lib -Wl,-rpath/home/xiaochao/Loongnix/SSL/arm-ssl/lib \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-loongarch64-g \
-optimized-qmake \
-cstd c11 \
--rpathno \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glibno \
--iconvno \
--pcreqt \
--zlibqt \
--freetypeqt \
--harfbuzzqt \
-no-opengl \
-linuxfb \
--xcbno \
--libpngqt \
--libjpegqt \
--sqliteqt \
-plugin-sql-sqlite \
-recheck-all报错如下修改Makefile删除-m64 重新交叉编译qt,添加openssl支持 四、opencv安装
从官网下载opencv的源码以及扩展包然后解压将扩展包放在opencv目录下。 创建 build文件夹, build 为构建文件夹进入 build 目录下执行指令 cmake-gui开始配置 OpenCV 的环境。 cd build cmake-gui 执行完成后会出现图形化工具 cmake-gui。 如下图 指定我们源码的所在路径和构目录。按如下图设置记得修改成个人的路径。再点击 Gen erate。
选择 Unix Makefiles 然后选择 Specify options for cross-compiling再点击 Next。 填写交叉编译器的路径。 下面就是您配置的信息可以配置很多项比如要编译哪些库等都可以在此选择编译或者 不编译。 比如常见的 V4L2 都需要自己打开V4L2 是处理摄像头类用的。 点击 CMAKE在 CMAKE_EXE_LINKER_FLAGS 处添加上“-lpthread -lrt -ldl”添加这些 是指定依赖库的链接参数。 上面的“-lxx”其中“-l”是大写字母“L”的小写字母“l”不是 数字“1”。 再在 CMAKE_INSTALL_PREFIX 处指定安装目录如果不指定它会默认安装到 Ubuntu 系统目录/usr/local 下。再点击关闭。
如果需要编译扩展库则需勾选NONFREE并指定扩展库的源码目录中modules目录。如果不需要扩展库则不需要选择相关项。将其值选择为opencv_contrib目录中的modules目录 到这里我们已经完成配置现在我们需要生成 Makefile 等文件我们先点击 Configure再点击 Generate 就可以生成了然后退出即可。 然后需要在源码目录 3rdparty/protobuf/src/google/protobuf/stubs/common. cc 这个文件下第 33 行添加#define HAVE_PTHREAD 宏定义才可以编译的过。具体原因是 HA VE_PTHREAD 宏定义了 pthread 库。在如下位置添加即可。 cd .. // 返回 opencv 源码顶层目录 vim 3rdparty/protobuf/src/google/protobuf/stubs/common.cc 修改完成后返回于是 build 目录下可以看到 bulid 目录下已经准备了构建文件。我们直 接输入 make 构建即可。 cd build/ make -j8 报错
这个bug暂时还没解决于是重新开始交叉编译这次也没有移植扩展包然后居然成功了。