clion+wsl qt库+交叉编辑器(已完成项目环境搭建)

Clion连接wsl

第一步安装WSL

①启用适用于 Linux 的 Windows 子系统

以管理员身份打开 PowerShell,并运行以下命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

启用虚拟机功能

以管理员身份打开 PowerShell,并运行以下命令:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

③在Microsoft Store下载合适版本的Ubuntu

点击get按钮,下载

下载完成后,打开

设置用户名和密码

第二步安装cmake以及所需配置文件

①更新源

sudo apt-get update

②在wsl的任意目录下编写脚本文件

代码如下:

sudo touch a.sh ---------------------创建脚本文件

sudo vim a.sh ------------------------打开并编写脚本文件

进入脚本文件后点击键盘insert键,进入编写模式,将脚本内容复制到里面,按esc键进入编辑模式,输入两个ZZ保存并推出。

脚本文件代码如下:

#!/bin/bash

set -e

SSHD_LISTEN_ADDRESS=127.0.0.1

if [ -e "/dev/vsock" ]; then # in case of WSL2

SSHD_LISTEN_ADDRESS=0.0.0.0

fi

SSHD_PORT=2222

SSHD_FILE=/etc/ssh/sshd_config

SUDOERS_FILE=/etc/sudoers

0. update package lists

sudo apt-get update

0.1. reinstall sshd (workaround for initial version of WSL)

sudo apt remove -y --purge openssh-server

sudo apt install -y openssh-server

0.2. install basic dependencies

sudo apt install -y cmake gcc clang gdb valgrind build-essential

1.1. configure sshd

sudo cp $SSHD_FILE ${SSHD_FILE}.date '+%Y-%m-%d_%H-%M-%S'.back

sudo sed -i '/^Port/ d' $SSHD_FILE

sudo sed -i '/^ListenAddress/ d' $SSHD_FILE

sudo sed -i '/^UsePrivilegeSeparation/ d' $SSHD_FILE

sudo sed -i '/^PasswordAuthentication/ d' $SSHD_FILE

echo "# configured by CLion"      | sudo tee -a $SSHD_FILE

echo "ListenAddress ${SSHD_LISTEN_ADDRESS}"| sudo tee -a $SSHD_FILE

echo "Port ${SSHD_PORT}"          | sudo tee -a $SSHD_FILE

echo "UsePrivilegeSeparation no"  | sudo tee -a $SSHD_FILE

echo "PasswordAuthentication yes" | sudo tee -a $SSHD_FILE

1.2. apply new settings

sudo service ssh --full-restart

2. autostart: run sshd

sed -i '/^sudo service ssh --full-restart/ d' ~/.bashrc

echo "%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh --full-restart" | sudo tee -a $SUDOERS_FILE

cat << 'EOF' >> ~/.bashrc

sshd_status=$(service ssh status)

if [[ $sshd_status = "is not running" ]]; then

sudo service ssh --full-restart

fi

EOF

summary: SSHD config info

echo

echo "SSH server parameters ($SSHD_FILE):"

echo "ListenAddress ${SSHD_LISTEN_ADDRESS}"

echo "Port ${SSHD_PORT}"

echo "UsePrivilegeSeparation no"

echo "PasswordAuthentication yes"

③运行脚本

通过如下命令运行脚本

sh  a.sh

第三步下载clion

网上教程颇多,可自行搜索

https://www.cnblogs.com/citrus/p/13565519.html

第四步建立clion  wsl工具链

①打开clion,通过 文件->设置->构建,执行,部署->工具链  打开以下页面

我这里已经添加了wsl

②点击+好按钮添加wsl

③wsl里面内容将会自动填充

④设置ssh

通过以下目录  文件->设置->工具->ssh配置 找到以下页面

用户名和密码分别是wsl中你自己设置的用户名和密码

端口号是在脚本中设置的端口 2222

——————————————————————————————————————————————————————

自此clion和wsl连接配置成功!!!

——————————————————————————————————————————————————————

配置clion连接qt库和交叉编辑器

第一步,解压qt库和交叉编辑器

①在wsl命令窗口,解压qt库和交叉编辑器

通过cd命令,进入存有qt库和交叉编辑器压缩包的文件下

利用一下命令进行解压

tar -xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar

tar -xvf qt-5.12.3.tar

这里我已经解压完成了,前面两个文件为解压后的文件

第二步,配置toolchain.cmake文件中的路

①打开toolchain.cmake,并修改红色处路径位置为自己文件目录下qt库和交叉编辑器的位置

第三步,修改clion中toolchain.cmake路径

①通过 文件->设置->构建,执行,部署->CMake 打开以下页面

点击+号按钮添加Release-WSL 构建类型为:Release 工具链WSL

CMake选项:-DCMAKE_TOOLCHAIN_FILE=/mnt/d/Co2/package/toolchain.cmake

即: -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake文件目录

点击确定完成设置

———————————————————————————————————————————————————————

自此qt库和交叉编辑器导入clion !!!!

———————————————————————————————————————————————————————

运行项目

第一步,将项目源码文件放到英文目录下

第二步,将项目导入Clion中打开

第三步,找到main.cpp文件并运行

出现的错误

错误一:项目构建到70%出现错误

原因:wsl  Ubuntu版本不对

解决方法:将Ubuntu18.0升级到Ubuntu20.04版本后构建成功

错误二:构建到100%后出现报错

cannot execute binary file: Exec format error

原因是编译链中的GCC是32位版本,而wsl本身是不支持的。

解决方法:

安装qemu-user-static软件包,添加i386二进制文件格式,启用i386体系结构,更新软件包列表,并安装一些i386软件包

wsl指令如下:

安装qemu和binfmt

sudo apt update

sudo apt install qemu-user-static

sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'

这些命令将通过执行qemu-i386-static来激活i386支持,并将配置文件放入/var/lib/binfmts/中,以供将来重新激活。

每次重新启动WSL并需要i386支持时,都需要重新激活此功能

sudo service binfmt-support start

③启用i386架构和软件包

sudo dpkg --add-architecture i386

sudo apt update

sudo apt install gcc:i386

错误三:缺少文件

下载arm-linux-gnueabihf 和 arm-linux-gnueabi  在两个文件中lib文件里面找到缺少的文件

通过cp命令 复制到wsl主目录下的lib文件中

 

例如:第一次缺失了libpthread.so.0文件

则在usr/arm-linux-gnueabihf/lib中存在

则在该目录下通过指令

cp libpthread.so.0 /lib 完成复制

最后通过多次复制,最后运行成功!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值