c++ - “Make”因Clang错误而失败-如何从Clang中获取错误?

标签 c++ makefile clang linker-errors glew

主要问题是:如何解决clang错误?

我一直在尝试按照these instructions安装GLEW。从第二个角度看,我已经看到GLEW在Mac OS X上并不是真正必要的,但是我仍然想找出如何从遇到的问题中获取错误。 (我对make的经验不足,也无法使任何类似的在线解决方案起作用)。

理论上,我应该下载GLEW,解压缩,然后在文件中运行“make”。这是make的输出:

$ make
cc -dynamiclib -install_name /usr/local/lib/libGLEW.2.1.0.dylib -current_version 2.1.0 -compatibility_version 2.1 -o lib/libGLEW2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL
ld: malformed file
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//OpenGLframework/OpenGL.tbd:4:18: error: unknown enumerated scalar
platform:    zippered
             ^~~~~~~~
 file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Framework//OpenGL.framework/OpenGL.tbd'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [lib/libGLEW.2.1.0.dylib] Error 1

Make -n表明这只是第一个命令,几乎立即失败。我已经尝试过make V=1make VERBOSE=1make SHELL='sh -x',但是它们没有给我有关clang错误的更多详细信息。我也尝试过使用-v运行cc命令:

$ cc -v -dynamiclib -install_name /usr/local/lib/libGLEW.2.1.0.dylib -current_version 2.1.0 -compatibility_version 2.1 -o lib/libGLEW2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
"Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -dylib -dylib_compatibility_version 2.1 -dylib_current_version 2.1.0 -arch x86_64 -dyib_install_name /usr/local/lib/libGLEW.2.1.0.dylib -macosx_version_min 10.14.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -o lib/libGLEW.2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL -L/usr/local/lib -lSystem / Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/lib/clang/9.1.0/lib/darwin/libclang_rt.osx.a
ld: malformed file
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//OpenGLframework/OpenGL.tbd:4:18: error: unknown enumerated scalar
platform:    zippered
             ^~~~~~~~
 file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Framework//OpenGL.framework/OpenGL.tbd'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [lib/libGLEW.2.1.0.dylib] Error 1

我认为我实际上并没有设法摆脱c语。那我该怎么做呢?

最佳答案

它是

Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -dylib -dylib_compatibility_version 2.1 -dylib_current_version 2.1.0 -arch x86_64 -dyib_install_name /usr/local/lib/libGLEW.2.1.0.dylib -macosx_version_min 10.14.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -o lib/libGLEW.2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL -L/usr/local/lib -lSystem / Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/lib/clang/9.1.0/lib/darwin/libclang_rt.osx.a

失败的命令,它是ld,而不是clang。您可以单独运行此命令以获取相同的错误消息。


ld: malformed file
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//OpenGLframework/OpenGL.tbd:4:18: error: unknown enumerated scalar
platform:    zippered
             ^~~~~~~~
file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Framework//OpenGL.framework/OpenGL.tbd'

是链接器的错误消息。不幸的是,我不熟悉Mac上的编译过程,因此无法建议如何修复它。

关于c++ - “Make”因Clang错误而失败-如何从Clang中获取错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59025906/

相关文章:

c++ - 如何在 OSX 上编译 caffe_rtpose?

c++ - 使用 -g 编译本身会降低性能吗?

clang libtooling : determine macro expansion location

c++ - 将现有的 C++ 对象传递给 Lua

c++ 没有这样的文件或目录 - Visual Studio

linux - 为什么 CUDA 的示例联编文件找不到 CUDA 库?

makefile - 有人知道从 Makefile 生成点 (graphviz) 文件的工具吗?

c++ - 我怎样才能克服 "unsafe"错误?

c++ - 如何使用 ZwQueryInformationProcess 获取内核驱动程序中的 ProcessImageFileName?

build-process - 了解构建 Linux 内核时要编译的文件