Linux C++ .so
共有オブジェクトライブラリからグローバルC++関数をエクスポートし、それらの関数をLinux C++ .out
アプリケーションで使用したいと考えています。LinuxからのC++関数のエクスポート/インポートダイナミックライブラリ/ Linuxコンソールアプリケーション| Visual Studio Linux Project
これは、Linux開発環境でこれが通常どのように行われるかの例を見てきました。しかし、私はVisual Studio Linuxプロジェクトと新しいVisual C++ for Linux Development拡張機能を使用しています。私が見た例の多くのステップは、Visual Studioビルドシステムによって処理されるので、状況はこの状況では少し異なるように見えます。
Visual Studioで2つのLinux C++プロジェクトを作成しました。これは空のプロジェクトの1つで、プロパティとコンソールアプリケーションでは.so
に変更されています。私はコンソールアプリケーションで共有オブジェクトライブラリを参照しました。
共有オブジェクトライブラリプロジェクトには、functions.h
とfunctions.cpp
という2つのファイルがあります。私は消費するコンソールアプリケーションへfunctions.h
ファイルを追加した
#include functions.h
extern "C" void Function_01() {
return 0;
}
functions.h
#pragma once
void Function_01();
functions.cpp ...
#include <cstdio>
#include "functions.h"
int main()
{
Function_01();
return 0;
}
おそらく、エクスポートするグローバル関数は思わ奇妙ですが、私の問題では、これは最も自然なアプローチのようですが、私はfライブラリが構築されリンクされると、ネームスペース内のunctions
私は間違っていますか?これらのVisual C++ for Linux開発プロジェクトをリンクし、共有オブジェクトライブラリからエクスポートされた関数を消費するにはどうすればよいですか?
これは*関連するかもしれません:https://gcc.gnu.org/wiki/Visibility –