0

古い Obj-C プロジェクト (Cocoa アプリ) を再コンパイルしたとき、リンカーは、sin() や sysctl() などのいくつかの共通ライブラリ モジュールを見つけることができませんでした。このプロジェクトは、以前のバージョンの Xcode で動作していました。現在、OSX 10.5 で Xcode 3.1.2 を使用しています。エラーメッセージは次のとおりです。

Line Location Tool:0: collect2: ld returned 1 exit status  
Line Location Tool:0: symbol(s) not found  
Line Location Tool:0: _AmIBeingDebugged in MeterMileage.o  
Line Location Tool:0: "_sysctl", referenced from:  
Line Location Tool:0: -[AnimatedStar drawRect:] in AnimatedStar.o  
Line Location Tool:0: "_sin", referenced from:  
...  

私の現在のバージョンの Xcode は、sin() などを使用して新しいプロジェクトの正しいライブラリにリンクします。以前の Xcode で開始されたプロジェクトを正しいライブラリを使用するように修正するにはどうすればよいですか? FFTWでのリンクについての記事を見ましたが、sin()ってそんなに珍しくないですよね?

新しいプロジェクトを作成して、自分のコードなどをそこにコピーできると思いますが、それは少し不器用に思えます。より良い方法はありますか?おそらく、更新が必要なプロジェクトがさらに増えるでしょう。

ありがとう、ゲイリー

4

1 に答える 1

0

古いプロジェクトが、10.5 には存在しない C 標準ライブラリまたはランタイムの古いコピーに対して明示的にリンクしようとしている可能性があります。エラー結果だけでなく、リンカー呼び出し行を投稿してください。それは私たちにいくつかの手がかりを与えるはずです。

于 2010-01-01T05:04:28.863 に答える