clion+wsl qtライブラリ+クロスエディタ(プロジェクト環境構築済み)

クリオン接続WSL

最初のステップは WSL をインストールすることです

①Linux用Windowsサブシステムを有効にする

管理者として PowerShell を開き、次のコマンドを実行します。

dism.exe /online / enable-feature  /featurename: Microsoft-Windows -サブシステム-Linux  /all /norestart

仮想マシン機能

管理者として PowerShell を開き、次のコマンドを実行します。

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

③Microsoft Storeから適切なバージョンのUbuntuをダウンロードします。

入手ボタンをクリックしてダウンロードしてください

ダウンロードが完了したら、開きます

ユーザー名とパスワードを設定する

2 番目のステップは、cmake と必要な構成ファイルをインストールすることです。

①アップデートソース

sudo apt-get アップデート

②wslの任意のディレクトリにスクリプトファイルを書き込む

コードは以下のように表示されます:

sudo touch a.sh ------------------------スクリプトファイルの作成

sudo vim a.sh ----------スクリプトファイルを開いて書き込みます

スクリプト ファイルを入力した後、キーボードの挿入キーをクリックして書き込みモードに入り、スクリプトの内容をコピーし、esc キーを押して編集モードに入り、2 つの ZZ を入力して保存して終了します。

スクリプト ファイルのコードは次のとおりです。

#!/bin/bash

セット -e

SSHD_LISTEN_ADDRESS=127.0.0.1

if [ -e "/dev/vsock" ]; 次に # WSL2 の場合

SSHD_LISTEN_ADDRESS=0.0.0.0

フィ

SSHD_PORT=2222

SSHD_FILE=/etc/ssh/sshd_config

SUDOERS_FILE=/etc/sudoers

0. パッケージリストを更新する

sudo apt-get アップデート

0.1。sshd を再インストールします (WSL の初期バージョンの回避策)

sudo apt delete -y --purge openssh-server

sudo apt install -y openssh-server

0.2。基本的な依存関係をインストールする

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

1.1. sshdを構成する

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

sudo sed -i '/^ポート/ 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 "# CLion によって構成されました" | sudo tee -a $SSHD_FILE

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

echo "ポート ${SSHD_PORT}" | sudo tee -a $SSHD_FILE

echo "UsePrivilegeSeparation いいえ" | sudo tee -a $SSHD_FILE

echo "パスワード認証はい" | sudo tee -a $SSHD_FILE

1.2. 新しい設定を適用する

sudo サービス ssh --full-restart

2. 自動起動: sshd を実行します。

sed -i '/^sudo サービス 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=$(サービスの SSH ステータス)

if [[ $sshd_status = "実行されていません"  ]]; それから

sudo サービス ssh --full-restart

フィ

終了後

概要: SSHD 構成情報

エコー

echo "SSH サーバーパラメータ ($SSHD_FILE):"

echo "ListenAddress ${SSHD_LISTEN_ADDRESS}"

エコー「ポート ${SSHD_PORT}」

echo "UsePrivilegeSeparation no"

echo "パスワード認証はい"

③スクリプトを実行する

次のコマンドでスクリプトを実行します

シャ、シャ

3番目のステップはclionをダウンロードすることです

オンラインには多くのチュートリアルがあり、自分で検索できます

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

4 番目のステップは、clion wsl ツールチェーンを確立することです。

①clionを開き、「ファイル」→「設定」→「ビルド、実行、デプロイメント」→「ツールチェーン」で以下のページを開きます。

ここにWSLを追加しました

②+OKボタンをクリックしてwslを追加します

③wslの内容が自動で入力されます

④sshの設定

次のディレクトリから次のページを見つけます。 [ファイル] -> [設定] -> [ツール] -> [ssh 構成]

ユーザー名とパスワードはそれぞれ、wsl で設定したユーザー名とパスワードです。

ポート番号はスクリプトで設定したポート2222です

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

それ以来、clion と wsl の接続設定は成功しています。

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

qt ライブラリとクロスエディタに接続するように clion を設定する

最初のステップは、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

ここで解凍が完了しました、最初の2ファイルが解凍後のファイルです。

2 番目のステップは、toolchain.cmake ファイル内のパス

①toolchain.cmakeを開き、赤色で示したパスの位置を自分のファイルディレクトリ内のqtライブラリとクロスエディタの位置に変更します。

3 番目のステップは、clion の toolschain.cmake パスを変更することです。

①「ファイル」→「設定」→「ビルド、実行、デプロイメント」→「CMake」で以下のページを開きます。

+ ボタンをクリックして Release-WSL を追加します。ビルド タイプは、リリース ツールチェーン WSL です。

CMake 選択:-DCMAKE_TOOLCHAIN_FILE=/mnt/d/Co2/package/toolchain.cmake

つまり、 -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ファイル ディレクトリです。

「OK」をクリックして設定を完了します

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

それ以来、qt ライブラリとクロスエディターが clion にインポートされました。

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

プロジェクトを実行する

最初のステップは、プロジェクトのソース コード ファイルを英語のディレクトリに置くことです。

2 番目のステップは、プロジェクトを Clion にインポートして開きます。

3 番目のステップは、main.cpp ファイルを見つけて実行することです。

エラーが発生しました

間違い 1: プロジェクトが 70% までビルドされたときにエラーが発生しました

理由: WSL Ubuntu のバージョンが間違っています

解決策: Ubuntu18.0 を Ubuntu20.04 バージョンにアップグレードした後、正常にビルドされる

間違い 2: 100% までビルドするとエラーが発生する

バイナリファイルを実行できません: 実行フォーマットエラー

その理由は、コンパイル チェーンの GCC が 32 ビット バージョンであり、wsl 自体がサポートしていないためです。

解決:

qemu-user-static パッケージをインストールし、i386 バイナリ ファイル形式を追加し、i386 アーキテクチャを有効にし、パッケージ リストを更新し、いくつかの i386 パッケージをインストールします。

wsl コマンドは次のとおりです。

①qemuとbinfmtをインストールする

sudo aptアップデート

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' --マスク '\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 サービス binfmt-support 開始

③i386アーキテクチャとソフトウェアパッケージを有効にする

sudo dpkg --add-architecture i386

sudo aptアップデート

sudo apt install gcc:i386

間違い 3: ファイルが見つからない

arm-linux-gnueabihf および arm-linux-gnueabi をダウンロードし、lib ファイル内で不足しているファイルを見つけます。

cp コマンドを使用して、wsl ホーム ディレクトリの lib ファイルにコピーします。

 

例: libpthread.so.0 ファイルが初めて見つかりません

usr/arm-linux-gnueabihf/lib に存在します

次に、このディレクトリにコマンドを渡します

cp libpthread.so.0 /lib のコピーが完了しました

何度かコピーを繰り返した結果、ようやく正常に実行できるようになりました。

おすすめ

転載: blog.csdn.net/m0_57665268/article/details/129878195