バージョン1とバージョン2の間でパラメータを追加した外部ライブラリの関数を呼び出します。両方のバージョンをサポートしたいと思います。コンパイル時にextern関数呼び出しのシグネチャを選択/検出
私はバージョン2では
extern void run(int param1);
... in the code ...
run(123);
を行う。この時点で、それが実行されます(int型のparam1、int型PARAM2)。
何らかの理由で動的にリンクしているライブラリのバージョンを検出できますか? (パラメータの数)
私は、ユーザにMakefileでライブラリバージョンを設定させ、プリプロセッサ-ifsでこれを解決させないようにしたいと思います。
どのライブラリですか?図書館の開発者が前向きに考えていたなら、図書館のユーザーが図書館の版を入手する方法があります。関数またはグローバル変数である可能性があります。このようなバージョンの可読性がないと、ライブラリAPIの呼び出しシグネチャを変更すること自体が邪魔になります。 – TJD
残念ながらそれは利用できません。 makeを実行すると、ライブラリディレクトリのREADMEからgrep/grepを取得することができます。 – j13r