VisualStudio2017でLinuxアプリのリモートデバッグ環境を使用する上で発生した問題とその解決
はじめに
以前作成した記事(VisualStudio2017でLinuxアプリのリモートデバッグ)の環境を使用する上で発生した問題と,その解決をいくつか残しておこうと思います.
コンパイルができない
原因
GNU Cライブラリを更新していなどの原因で,ビルド時に必要なファイルが見つからず,コンパイルエラーとなっていたようです.
解決策
GNU Cライブラリ(libc)関連を更新/インストール,その後再起動を行うことで解決しました.
以下コマンドでパッケージの更新を行うのが一番手っ取り早いと思われます.
sudo apt update
sudo apt upgrade
個別に必要なもののみインストールを行いたい場合は多分以下でいけると思います.(これは過不足あるかもしれないです.)
sudo apt update
sudo apt install libc6-dev
sudo apt install libc6-amd64
sudo apt install libc6-dev-amd64
sudo apt install build-essential
root権限が必要なコードを実行できない
原因
見出しの通りです.
pthreadのFIFOスケジューリングを使用しようとしたとき,root権限が必要となってしまいます.
しかし前回記事の環境で実行すると,root権限で実行することができないため,思うように動作しません.
解決策
わりと強行策ですが,単にssh接続にrootユーザを許可するようにしただけです.
「/etc/ssh/sshd_config」の「PermitRootLogin」を"yes"に変更.
以下コマンドでrootユーザのパスワードを設定
sudo passwd root
VS2017側からssh接続先にrootユーザのものを追加し,以降それを使用するようにする.
静的ライブラリのリンクができない
原因
前回記事に記載した箇所に「-l◯◯」を記載する場合,コンパイルオプショとしてはコンパイル対象のソースコードの記載よりも前に記載されてしまいます.
そのため,mathライブラリなどのコンパイル対象のソースファイルの記載よりもあとにライブラリのリンクオプションを記載しなくてはいけないライブラリのリンクができなくなってしまいます.
解決策
「プロジェクトのプロパティ」→「リンカー」→「すべてのオプション」→「追加の依存ファイル」の後ろに「-l〇〇」を追加することで,コードファイルの記載よりもあとに展開されるため,問題なくコンパイルが行えます.
[参考]
https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/#verbose
Author And Source
この問題について(VisualStudio2017でLinuxアプリのリモートデバッグ環境を使用する上で発生した問題とその解決), 我々は、より多くの情報をここで見つけました https://qiita.com/nyasai/items/fc2e201f6728162cd0fa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .