クリオン接続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 touch a.sh ------------------------スクリプトファイルの作成
sudo vim a.sh ----------スクリプトファイルを開いて書き込みます
スクリプト ファイルを入力した後、キーボードの挿入キーをクリックして書き込みモードに入り、スクリプトの内容をコピーし、esc キーを押して編集モードに入り、2 つの ZZ を入力して保存して終了します。
if [ -e "/dev/vsock" ]; 次に # WSL2 の場合
SSHD_FILE=/etc/ssh/sshd_config
0.1。sshd を再インストールします (WSL の初期バージョンの回避策)
sudo apt delete -y --purge openssh-server
sudo apt install -y openssh-server
sudo apt install -y cmake gcc clang gdb valgrind build-essential
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
sed -i '/^sudo サービス ssh --full-restart/ d' ~/.bashrc
echo "%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh --full-restart" | sudo tee -a $SUDOERS_FILE
sshd_status=$(サービスの SSH ステータス)
if [[ $sshd_status = "実行されていません" ]]; それから
echo "SSH サーバーパラメータ ($SSHD_FILE):"
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}"
echo "UsePrivilegeSeparation no"
オンラインには多くのチュートリアルがあり、自分で検索できます
https://www.cnblogs.com/citrus/p/13565519.html
4 番目のステップは、clion wsl ツールチェーンを確立することです。
①clionを開き、「ファイル」→「設定」→「ビルド、実行、デプロイメント」→「ツールチェーン」で以下のページを開きます。
②+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 のコピーが完了しました
何度かコピーを繰り返した結果、ようやく正常に実行できるようになりました。