前提・実現したいこと
WindowsマシンのVisual StudioからリモートビルドしてLinuxに配置した共有ライブラリとリンクするC++実行ファイルをリモートデバッグしたい
WindowsマシンでVisual Studio 2019(以下、VS)を使用し、共有リンクを含むC++の実行ファイルを作成し、Linuxマシンでのリモートデバッグができるのか調べています。
LinuxマシンへのC++実行ファイルの配置はうまくいくのですが、Windowsマシンからリモートデバッグをすると、以下のようなエラーメッセージがVSのLinuxコンソールに表示されてしまいます。
発生している問題・エラーメッセージ
error while loading shared libraries: libDynamic.so: cannot open shared object file: No such file or directory
Linuxマシンで直接C++実行ファイルを実行する際、ライブラリパスをカレントに指定(LD_LIBRARY_PATH=.)するとうまく動作します。
(推測ですが、上記の操作をVS上で正しく設定できていないことが問題の原因のように思います。その方法がわからないのです・・・。)
解決策をご存じの方がいらっしゃいましたら、コメントお願いいたします。
###実行環境
- Windows10
- Ubuntu 18.04.5
- Visual Studio 2019
- g++ 7.5.0
- gdb 8.1.1
- gdbserver 8.1.1
###実行手順
- VSでメイクファイルプロジェクトを作成する。その後該当後ソースコードを配置する
- 下記のリンクを参考にVSからLinux環境のリモートデバッグができるようにセットアップする
Visual Studio で Linux MSBuild C++ プロジェクトを構成する
- VSからデバッグ実行する
該当のソースコード
main.cpp
cpp
1#include <cstdio> 2int Sub(int a, int b); // 共有ライブラリ内のメソッド 3 4int main() 5{ 6 printf("%s!\n", "Hello World"); 7 8 int pa1 = 4, pa2 = 3; 9 int ans = Sub(pa1, pa2); 10 printf("%d + %d = %d\n", pa1, pa2, ans); 11 return 0; 12}
DynamicFunc.cpp (共有ライブラリとして使用する)
cpp
1int Sub(int a, int b) { 2 return a - b; 3}
makefile
CplusSample:main.o main.cpp g++ -Wall -g3 -O0 -shared -o libDynamic.so DynamicFunc.cpp g++ -Wall -g3 -O0 -o CplusSample main.o libDynamic.so
試したこと
Linuxマシンのみ動作させる際は、ライブラリパスをカレントに指定(LD_LIBRARY_PATH=.)し、実行することで動作確認ができます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。