链接器存根文件警告

For a few days now whenever gcc or go are invoked the following warning is thrown by the system (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

I have the feeling that the installation of some go packages via go get may have changed some files in the above directory but I have no means to verify this.

Is there a way to properly determine the cause of the message?

I had been seeing those warnings spewing from my make process for a few weeks. I recently made a Xcode project to build using make (via an External Build System project) and noticed those warnings weren't present when make was being run from Xcode. The only difference is that Xcode exports a series of build setting environment variables prior to running make.

After some experimentation it turned out to be the SDKROOT variable which, in hindsight, makes perfect sense. I added this variable to my makefile and the warnings disappeared:

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

Note: That path can change with different versions of Xcode. It may be wise to reference the current SDK version instead:

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

Of course, assumes you have Xcode installed.