Xcodeは静的ライブラリを適切に構築していません(関数はそれらにありません)
-
25-10-2019 - |
質問
基本的に、Xcode4で静的ライブラリを作成およびコンパイルすることができますが、関数はOtoolで読み取られていません。なんとかそれをすることができました 一度 それが機能するようにしますが、それ以来それ以外の時間は失敗しているので、私は明らかなステップを逃しているに違いありません。
私が現在行っているのは、Xcode4に新しいビューベースのアプリケーションを作成し、新しいターゲット(数字)を追加し、file.cというソースファイルを追加する数字に、そのコンテンツは次のとおりです。
static int Get10()
{
return 10;
}
次に、それをコンパイルします(ビルドスキームのドロップダウンで番号を選択したことを確認してください| iPhone 4.3シミュレーターを作成します)。
しかし、私がlibnumbersでotool -sを実行するとき、私は結果が得られません:
Ranlib構造のサイズ:0(番号0)オブジェクトオフセット文字列インデックス
正しく構築されたlibnumbersでotool -sを実行した場合、0Sではなくいくつかの数字を取得するので、私はそこにいくつかのものがあるはずです。
ランリブ構造のサイズ:16(番号2)オブジェクトオフセット文字列索引136 0 136 7
私は本当に間違っていることを本当に知りません。私が作った成功したLibコンパイルで私がしたことをバックトレースしようとしましたが、これらの関数がコンパイルされたがこれらではなくコンパイルされた理由を示すものは何も見つかりませんでした。
解決
使用しないでください static
翻訳ユニットの外側の関数を使用する場合は、定義されています。代わりに、関数の外部リンケージが必要です。 static
パート(外部リンケージは機能のデフォルトです)。