自グループで作っているライブラリをshared object(.so)として提供したいのですが、
その際にユーザ側でshared objectで使われるパラメタを渡せるようにしたいです。
わけあってBoostなどは使うことができず、ただC++でINIファイルなどの読み込みをするのが面倒なので
ヘッダファイルなどで渡せないかなと思ったのですが、不可能でしょうか。
cpp
1@const.hpp 2const int X = 3; 3 4@library.hpp 5void printmsg(); 6 7@library.cpp 8#include <stdio.h> 9#include "const.hpp" 10void printmsg() { 11 printf("X is %d\n", X); 12} 13 14### Terminalで実行 15g++ -fPIC -shared -o libprint.so library.cpp 16cp libprint.so /usr/lib/ 17 18@user_main.cpp 19#include "const.hpp" 20int main(void) { 21 printmsg(); 22 return 0; 23} 24 25### Terminalで実行 26g++ test.cpp -lprint 27
この時、最後のtest.cppのコンパイル直前で const.hpp の X の値を書き換えても
./a.outをして表示されるのは X is 3 ですよね。
これをうまくヘッダファイルを書き換えて実行結果が(ここではXの値が)変わるように出来たりしないでしょうか。
見当違いの質問かもしれませんが、よろしくお願いいたします。
以上
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。