sourceCpp
をしようとすると、警告が表示されます。
ld:警告:テキストベースのスタブファイル/System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbdとライブラリファイル/System/Library/Frameworks//CoreFoundation.framework/CoreFoundationは同期していません。リンクのためにライブラリファイルにフォールバックします。
しかし、実際には機能します。この警告を解決する方法を知りたいだけです。
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
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
コマンドで置き換えます。
編集:これは10.13.16以降で動作しなくなったようです。再インストール後に試してみてもMacに害はありませんが、今後の修正方法はわかりません。
最近この問題に遭遇しました。Macのコマンドラインツールを削除して再インストールするだけです。
$ rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
これらの手順の後、新しいバージョンのツールをインストールするためのポップが表示されます。
再インストールが役立つ場合もありますが、そうでない場合もあります。
これはAppleのせいであり、別のコマンドラインツールの更新で修正する必要があります。
今のところ警告を無視してください。
(この問題を経験している他の人々の束をここで参照してください: https://github.com/vim/vim/issues/3445 そしてここ: https://github.com/golang/go/issues/2607 )
これは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ファイルと実際のライブラリは同期していません。その後、警告が表示されます。
コンパイラがフォールバックして正しいライブラリを見つけたため、今のところこの警告を無視してもかまいません。