链接器存根文件警告

时间:2018-07-09 07:12:32

标签: macos go gcc linker linker-warning

几天来,只要调用gccgo,系统就会发出以下警告(macOS High Sierra 10.13.5):

ld: warning: text-based stub file /System/Library/Frameworks//Security.framework/Security.tbd and library file /System/Library/Frameworks//Security.framework/Security are out of sync. Falling back to library file for linking

我觉得通过安装某些go软件包 go get可能已经更改了上述目录中的某些文件,但是我无力验证这一点。

有没有办法正确确定消息的原因?

1 个答案:

答案 0 :(得分:0)

几周以来,我一直在make流程中看到这些警告。我最近做了一个使用make进行构建的Xcode项目(通过 External Build System 项目),并注意到从Xcode运行make时不存在那些警告。唯一的区别是Xcode在运行make之前会导出一系列构建设置环境变量。

经过一些试验,事实证明,它是SDKROOT变量,事后看来很合理。我将此变量添加到我的makefile中,警告消失了:

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

注意:该路径可以随Xcode的不同版本而改变。最好参考当前的SDK版本:

export SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

当然,假定您已安装Xcode。