実行時に共有オブジェクトobject.so
をロードするhostapp.cpp
があります。共有オブジェクトは、ホストアプリケーションから必要な.hファイルでのみコンパイルされますが、実行時に、それらの関数(ホストアプリケーションに存在する)にアクセスする必要があります。C++:共有アプリケーションとホストアプリケーションのランタイムリンク、シンボルテーブルの問題
-rdynamic
でホストアプリケーションをコンパイルすると明らかにこの問題が解決されますが、ホストアプリケーションのフルシンボルテーブルにオブジェクトが不必要に公開されます。
どのようにホストオブジェクトのシンボルが共有オブジェクトによって認識されるのかを正確に指定できますか?
編集:私はGNUツールチェーンを使ってGNU/Linux上に構築して実行しています。
あなたは '__attribute __((visibility(" default ")))' –
を探していると思います。答えに対するあなたのコメントから、あなたを満足させるようです...もしそうなら、それを受け入れてください;もしそうでなければ、それを修正するか、別のコメントをしてください。 – einpoklum