web-dev-qa-db-ja.com

ld:警告:テキストベースのスタブファイルは同期していません。リンクのためにライブラリファイルにフォールバックする

sourceCppをしようとすると、警告が表示されます。

ld:警告:テキストベースのスタブファイル/System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbdとライブラリファイル/System/Library/Frameworks//CoreFoundation.framework/CoreFoundationは同期していません。リンクのためにライブラリファイルにフォールバックします。

しかし、実際には機能します。この警告を解決する方法を知りたいだけです。

44
MOOn

MacでGoコードをコンパイルしているときにこの問題が発生しました。

/System/Library/Frameworks/でtldファイルが同期していませんでした。

解決策

最近のフレームワークをMacOSX.sdkから/Library/Frameworks/にリンクするだけです

Sudo ln -s  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework /Library/Frameworks/CoreFoundation.framework
10
jiyongdong

MacOS Mojave 10.14.2を使用して、私にとっての修正は、このソリューションを使用することでした GitHubのコメント

export SDKROOT=macosx10.14

上記の行を~/.bash_profileに入れます。 10.14をMacOSX Xcodeツールの特定のバージョンに置き換えます。実行して、使用しているバージョンを確認します。

xcrun --show-sdk-path

次のように出力されます:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk

最後のWordを取得し、すべて大文字にするだけで、上記のexportコマンドで置き換えます。

9
Paul Berg

編集:これは10.13.16以降で動作しなくなったようです。再インストール後に試してみてもMacに害はありませんが、今後の修正方法はわかりません。

最近この問題に遭遇しました。Macのコマンドラインツールを削除して再インストールするだけです。

$ rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install

これらの手順の後、新しいバージョンのツールをインストールするためのポップが表示されます。

6
Highstead

再インストールが役立つ場合もありますが、そうでない場合もあります。

これはAppleのせいであり、別のコマンドラインツールの更新で修正する必要があります。

今のところ警告を無視してください。

(この問題を経験している他の人々の束をここで参照してください: https://github.com/vim/vim/issues/3445 そしてここ: https://github.com/golang/go/issues/2607

3
UberFarmer

これはRcppとは何の関係もないと思います。

これはシステムに関連しています。

1つのtbdファイルの最初の行を以下に示します。これは単なるテキストファイルです。テキストエディタを使用して開くことができます。

--- !tapi-tbd-v3
archs:           [ i386, x86_64, x86_64h ]
uuids:           [ 'i386: 17321B27-67AB-3D26-B9DF-A69624B1C82B', 'x86_64: 358C547D-E227-3228-8218-62327F4605C8', 
                   'x86_64h: 945E5C0A-86C5-336E-A64F-5BF06E78985A' ]
platform:        macosx
install-name:    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
current-version: 1452.23
compatibility-version: 150
exports:         
  - archs:           [ i386 ]
    symbols:         [ '$ld$add$os10.5$.objc_class_name_NSObject', '$ld$add$os10.6$.objc_class_name_NSObject', 
                       '$ld$add$os10.7$.objc_class_name_NSObject', '$ld$hide$os10.4$.objc_class_name_NSArray', 
                       '$ld$hide$os10.4$.objc_class_name_NSCalendar', '$ld$hide$os10.4$.objc_class_name_NSData', 
...

私の理解では、tbdファイルには実際のライブラリファイルのバージョンと場所が含まれています。 「リンク」のようなものです。 (私の個人的な理解です。これが間違っている場合は修正してください。)

Xcodeのアップグレード後、tbdファイルと実際のライブラリは同期していません。その後、警告が表示されます。

コンパイラがフォールバックして正しいライブラリを見つけたため、今のところこの警告を無視してもかまいません。

0
Qiang Kou