質問

私はこの時にリンクする実行ファイルに対する静的ライブラリ(.a)、記号からの静的ライブラリとなっているの輸出による実行ファイルです。私はこれを避けるために輸出さい。

たって提供するバージョンスクリプトがもう何も変わらないのです。の内容は私の版のスクリプトとして

{
    global:
        main;
    local:
        *;
};

があるのではない輸出の記号から実行ファイルサイトにリンクされる場合には静的ライブラリ?んので再コンパイルの静的ライブラリそのものです。

役に立ちましたか?

解決

実行可能ファイルは、デフォルトでシンボルをエクスポートしていない、とあなたは-Wlを使用しない限り、そうではないだろう - 輸出ダイナミックに。これは、自身がメインの実行中にシンボルにリンクする必要があることだけが動的ライブラリをロードしている場合は必要である(これはあなたのライブラリがクラスが含まれている場合、C ++での一般的なケースであるexeファイルで上書き仮想メソッド)

おそらくあなたは、デバッグシンボルを持つシンボルのエクスポートを混乱しています。デバッグシンボルは(あなたがexeファイルを削除しない場合)、デバッガの利益のために生成されますが、実行する必要はありません。

他のヒント

使用 strip ?

$男帯

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top