Open ksgfk opened 1 month ago
Bot detected the issue body's language is not English, translate it automatically.
Title: A link error occurs when compiling dxc when customizing the package, toolchain, sdk, and ldflags under macos.
export LLVM_DIR="/usr/local/opt/llvm";
cmake DirectXShaderCompiler \
-B dxc \
-C DirectXShaderCompiler/cmake/caches/PredefinedParams.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=$LLVM_DIR/bin/clang \
-DCMAKE_CXX_COMPILER=$LLVM_DIR/bin/clang++ \
-DCMAKE_AR=$LLVM_DIR/bin/llvm-ar \
-DCMAKE_LINKER=$LLVM_DIR/bin/llvm-ld \
-DCMAKE_NM=$LLVM_DIR/bin/llvm-nm \
-DCMAKE_OBJDUMP=$LLVM_DIR/bin/llvm-objdump \
-DCMAKE_RANLIB=$LLVM_DIR/bin/llvm-ranlib \
-DCMAKE_SHARED_LINKER_FLAGS="-L/usr/local/opt/llvm/lib/ -L/usr/local/opt/llvm/lib/c++ -Wl -rpath /usr/local/opt/llvm/lib/c++" \
-DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/llvm/lib/ -L/usr/local/opt/llvm/lib/c++ -Wl -rpath /usr/local/opt/llvm/lib/c++" \
-G "Ninja"
我自行clone工程,使用以上命令是可以编译成功的,感觉就是CMAKE_SHARED_LINKER_FLAGS
参数不对的原因
既然自己本地可以,那你对下最后的 link flags ,看下差异。
Bot detected the issue body's language is not English, translate it automatically.
Since you can do it locally, check the last link flags and see the difference.
既然自己本地可以,那你对下最后的 link flags ,看下差异。
这是xmake调用cmake config生成的ninja命令片段
#############################################
# Link the shared library lib/libdxcompiler.dylib
build lib/libdxcompiler.dylib: CXX_SHARED_LIBRARY_LINKER__dxcompiler_Release tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcapi.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcassembler.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxclibrary.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcompilerobj.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/DXCompiler.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcfilesystem.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcutil.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcdisassembler.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcpdbutils.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxillib.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcvalidator.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxclinker.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcshadersourceinfo.cpp.o | lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMDXIL.a lib/libLLVMDxilContainer.a lib/libLLVMDxilPIXPasses.a lib/libLLVMDxilRootSignature.a lib/libLLVMDxcBindingTable.a lib/libLLVMHLSL.a lib/libLLVMInstCombine.a lib/libLLVMipa.a lib/libLLVMipo.a lib/libLLVMIRReader.a lib/libLLVMLinker.a lib/libLLVMMSSupport.a lib/libLLVMOption.a lib/libLLVMProfileData.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMDxilCompression.a lib/libLLVMPassPrinters.a lib/libclangIndex.a lib/libclangRewrite.a lib/libclangCodeGen.a lib/libclangRewriteFrontend.a lib/libclangFrontend.a lib/libclangDriver.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangCodeGen.a lib/libclangLex.a lib/libclangTooling.a lib/libclangBasic.a lib/libclang.a lib/libclangSPIRV.a lib/libLLVMPasses.a lib/libclangIndex.a lib/libclangFormat.a lib/libclangTooling.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangASTMatchers.a lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libLLVMDxilRootSignature.a lib/libLLVMipo.a lib/libLLVMVectorize.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMLinker.a lib/libLLVMScalarOpts.a lib/libLLVMInstCombine.a lib/libLLVMProfileData.a lib/libLLVMTarget.a lib/libclangDriver.a lib/libLLVMOption.a lib/libLLVMHLSL.a lib/libLLVMDxilContainer.a lib/libLLVMBitWriter.a lib/libLLVMTransformUtils.a lib/libLLVMDxcBindingTable.a lib/libLLVMipa.a lib/libLLVMAnalysis.a lib/libLLVMDXIL.a lib/libLLVMBitReader.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMSupport.a lib/libLLVMMSSupport.a lib/libSPIRV-Tools-opt.a lib/libSPIRV-Tools.a || include/dxc/HCTGen include/dxc/Support/TablegenHLSLOptions lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMCore.a lib/libLLVMDXIL.a lib/libLLVMDxcBindingTable.a lib/libLLVMDxcSupport.a lib/libLLVMDxilCompression.a lib/libLLVMDxilContainer.a lib/libLLVMDxilPIXPasses.a lib/libLLVMDxilRootSignature.a lib/libLLVMHLSL.a lib/libLLVMIRReader.a lib/libLLVMInstCombine.a lib/libLLVMLinker.a lib/libLLVMMSSupport.a lib/libLLVMOption.a lib/libLLVMPassPrinters.a lib/libLLVMPasses.a lib/libLLVMProfileData.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMipa.a lib/libLLVMipo.a lib/libSPIRV-Tools-opt.a lib/libSPIRV-Tools.a lib/libclang.a lib/libclangAST.a lib/libclangASTMatchers.a lib/libclangAnalysis.a lib/libclangBasic.a lib/libclangCodeGen.a lib/libclangDriver.a lib/libclangEdit.a lib/libclangFormat.a lib/libclangFrontend.a lib/libclangIndex.a lib/libclangLex.a lib/libclangParse.a lib/libclangRewrite.a lib/libclangRewriteFrontend.a lib/libclangSPIRV.a lib/libclangSema.a lib/libclangTooling.a lib/libclangToolingCore.a tools/clang/include/clang/AST/ClangAttrClasses tools/clang/include/clang/AST/ClangAttrDump tools/clang/include/clang/AST/ClangAttrImpl tools/clang/include/clang/AST/ClangAttrVisitor tools/clang/include/clang/AST/ClangCommentCommandInfo tools/clang/include/clang/AST/ClangCommentCommandList tools/clang/include/clang/AST/ClangCommentHTMLNamedCharacterReferences tools/clang/include/clang/AST/ClangCommentHTMLTags tools/clang/include/clang/AST/ClangCommentHTMLTagsProperties tools/clang/include/clang/AST/ClangCommentNodes tools/clang/include/clang/AST/ClangDeclNodes tools/clang/include/clang/AST/ClangStmtNodes tools/clang/include/clang/Basic/ClangAttrHasAttributeImpl tools/clang/include/clang/Basic/ClangAttrList tools/clang/include/clang/Basic/ClangDiagnosticAST tools/clang/include/clang/Basic/ClangDiagnosticAnalysis tools/clang/include/clang/Basic/ClangDiagnosticComment tools/clang/include/clang/Basic/ClangDiagnosticCommon tools/clang/include/clang/Basic/ClangDiagnosticDriver tools/clang/include/clang/Basic/ClangDiagnosticFrontend tools/clang/include/clang/Basic/ClangDiagnosticGroups tools/clang/include/clang/Basic/ClangDiagnosticIndexName tools/clang/include/clang/Basic/ClangDiagnosticLex tools/clang/include/clang/Basic/ClangDiagnosticParse tools/clang/include/clang/Basic/ClangDiagnosticSema tools/clang/include/clang/Basic/ClangDiagnosticSerialization tools/clang/include/clang/Parse/ClangAttrParserStringSwitches tools/clang/include/clang/Sema/ClangAttrParsedAttrImpl tools/clang/include/clang/Sema/ClangAttrParsedAttrKinds tools/clang/include/clang/Sema/ClangAttrParsedAttrList tools/clang/include/clang/Sema/ClangAttrSpellingListIndex tools/clang/include/clang/Sema/ClangAttrTemplateInstantiate tools/clang/include/clang/Serialization/ClangAttrPCHRead tools/clang/include/clang/Serialization/ClangAttrPCHWrite
ARCH_FLAGS = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -mmacosx-version-min=12.7
LANGUAGE_COMPILE_FLAGS = -m64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fPIC -fvisibility-inlines-hidden -fvisibility=hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wimplicit-fallthrough -Wcast-qual -Wno-unknown-pragmas -Wno-unused-but-set-variable -Wno-deprecated-copy -Wmissing-field-initializers -pedantic -Wno-long-long -Wno-switch -Wno-comment -fcolor-diagnostics -fms-extensions -Wno-language-extension-token -fno-common -Woverloaded-virtual -fno-strict-aliasing -Wno-nested-anon-types -m64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -O3 -DNDEBUG
LINK_FLAGS = -m64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -m64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -Wl,-dead_strip -Wl,-install_name,@rpath/libdxcompiler.dylib -compatibility_version 3.7.0 -current_version 3.7.0
LINK_LIBRARIES = -Wl,-rpath,@executable_path/../lib lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMDXIL.a lib/libLLVMDxilContainer.a lib/libLLVMDxilPIXPasses.a lib/libLLVMDxilRootSignature.a lib/libLLVMDxcBindingTable.a lib/libLLVMHLSL.a lib/libLLVMInstCombine.a lib/libLLVMipa.a lib/libLLVMipo.a lib/libLLVMIRReader.a lib/libLLVMLinker.a lib/libLLVMMSSupport.a lib/libLLVMOption.a lib/libLLVMProfileData.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMDxilCompression.a lib/libLLVMPassPrinters.a lib/libclangIndex.a lib/libclangRewrite.a lib/libclangCodeGen.a lib/libclangRewriteFrontend.a lib/libclangFrontend.a lib/libclangDriver.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangCodeGen.a lib/libclangLex.a lib/libclangTooling.a lib/libclangBasic.a lib/libclang.a lib/libclangSPIRV.a lib/libLLVMPasses.a lib/libclangIndex.a lib/libclangFormat.a lib/libclangTooling.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangASTMatchers.a -ldl lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libLLVMDxilRootSignature.a lib/libLLVMipo.a lib/libLLVMVectorize.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMLinker.a lib/libLLVMScalarOpts.a lib/libLLVMInstCombine.a lib/libLLVMProfileData.a lib/libLLVMTarget.a lib/libclangDriver.a lib/libLLVMOption.a lib/libLLVMHLSL.a lib/libLLVMDxilContainer.a lib/libLLVMBitWriter.a lib/libLLVMTransformUtils.a lib/libLLVMDxcBindingTable.a lib/libLLVMipa.a lib/libLLVMAnalysis.a lib/libLLVMDXIL.a lib/libLLVMBitReader.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMSupport.a lib/libLLVMMSSupport.a -lpthread -lz -lm lib/libSPIRV-Tools-opt.a lib/libSPIRV-Tools.a
OBJECT_DIR = tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir
POST_BUILD = :
PRE_LINK = :
TARGET_FILE = lib/libdxcompiler.dylib
TARGET_PDB = dxcompiler.dylib.dbg
这个是用上面手敲的cmake命令生成的ninja命令片段
#############################################
# Link the shared library lib/libdxcompiler.dylib
build lib/libdxcompiler.dylib: CXX_SHARED_LIBRARY_LINKER__dxcompiler_Release tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcapi.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcassembler.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxclibrary.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcompilerobj.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/DXCompiler.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcfilesystem.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcutil.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcdisassembler.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcpdbutils.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxillib.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcvalidator.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxclinker.cpp.o tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir/dxcshadersourceinfo.cpp.o | lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMDXIL.a lib/libLLVMDxilContainer.a lib/libLLVMDxilPIXPasses.a lib/libLLVMDxilRootSignature.a lib/libLLVMDxcBindingTable.a lib/libLLVMHLSL.a lib/libLLVMInstCombine.a lib/libLLVMipa.a lib/libLLVMipo.a lib/libLLVMIRReader.a lib/libLLVMLinker.a lib/libLLVMMSSupport.a lib/libLLVMOption.a lib/libLLVMProfileData.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMDxilCompression.a lib/libLLVMPassPrinters.a lib/libclangIndex.a lib/libclangRewrite.a lib/libclangCodeGen.a lib/libclangRewriteFrontend.a lib/libclangFrontend.a lib/libclangDriver.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangCodeGen.a lib/libclangLex.a lib/libclangTooling.a lib/libclangBasic.a lib/libclang.a lib/libclangSPIRV.a lib/libLLVMPasses.a lib/libclangIndex.a lib/libclangFormat.a lib/libclangTooling.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangASTMatchers.a lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libLLVMDxilRootSignature.a lib/libLLVMipo.a lib/libLLVMVectorize.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMLinker.a lib/libLLVMScalarOpts.a lib/libLLVMInstCombine.a lib/libLLVMProfileData.a lib/libLLVMTarget.a lib/libclangDriver.a lib/libLLVMOption.a lib/libLLVMHLSL.a lib/libLLVMDxilContainer.a lib/libLLVMBitWriter.a lib/libLLVMTransformUtils.a lib/libLLVMDxcBindingTable.a lib/libLLVMipa.a lib/libLLVMAnalysis.a lib/libLLVMDXIL.a lib/libLLVMBitReader.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMSupport.a lib/libLLVMMSSupport.a lib/libSPIRV-Tools-opt.a lib/libSPIRV-Tools.a || include/dxc/HCTGen include/dxc/Support/TablegenHLSLOptions lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMCore.a lib/libLLVMDXIL.a lib/libLLVMDxcBindingTable.a lib/libLLVMDxcSupport.a lib/libLLVMDxilCompression.a lib/libLLVMDxilContainer.a lib/libLLVMDxilPIXPasses.a lib/libLLVMDxilRootSignature.a lib/libLLVMHLSL.a lib/libLLVMIRReader.a lib/libLLVMInstCombine.a lib/libLLVMLinker.a lib/libLLVMMSSupport.a lib/libLLVMOption.a lib/libLLVMPassPrinters.a lib/libLLVMPasses.a lib/libLLVMProfileData.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMipa.a lib/libLLVMipo.a lib/libSPIRV-Tools-opt.a lib/libSPIRV-Tools.a lib/libclang.a lib/libclangAST.a lib/libclangASTMatchers.a lib/libclangAnalysis.a lib/libclangBasic.a lib/libclangCodeGen.a lib/libclangDriver.a lib/libclangEdit.a lib/libclangFormat.a lib/libclangFrontend.a lib/libclangIndex.a lib/libclangLex.a lib/libclangParse.a lib/libclangRewrite.a lib/libclangRewriteFrontend.a lib/libclangSPIRV.a lib/libclangSema.a lib/libclangTooling.a lib/libclangToolingCore.a tools/clang/include/clang/AST/ClangAttrClasses tools/clang/include/clang/AST/ClangAttrDump tools/clang/include/clang/AST/ClangAttrImpl tools/clang/include/clang/AST/ClangAttrVisitor tools/clang/include/clang/AST/ClangCommentCommandInfo tools/clang/include/clang/AST/ClangCommentCommandList tools/clang/include/clang/AST/ClangCommentHTMLNamedCharacterReferences tools/clang/include/clang/AST/ClangCommentHTMLTags tools/clang/include/clang/AST/ClangCommentHTMLTagsProperties tools/clang/include/clang/AST/ClangCommentNodes tools/clang/include/clang/AST/ClangDeclNodes tools/clang/include/clang/AST/ClangStmtNodes tools/clang/include/clang/Basic/ClangAttrHasAttributeImpl tools/clang/include/clang/Basic/ClangAttrList tools/clang/include/clang/Basic/ClangDiagnosticAST tools/clang/include/clang/Basic/ClangDiagnosticAnalysis tools/clang/include/clang/Basic/ClangDiagnosticComment tools/clang/include/clang/Basic/ClangDiagnosticCommon tools/clang/include/clang/Basic/ClangDiagnosticDriver tools/clang/include/clang/Basic/ClangDiagnosticFrontend tools/clang/include/clang/Basic/ClangDiagnosticGroups tools/clang/include/clang/Basic/ClangDiagnosticIndexName tools/clang/include/clang/Basic/ClangDiagnosticLex tools/clang/include/clang/Basic/ClangDiagnosticParse tools/clang/include/clang/Basic/ClangDiagnosticSema tools/clang/include/clang/Basic/ClangDiagnosticSerialization tools/clang/include/clang/Parse/ClangAttrParserStringSwitches tools/clang/include/clang/Sema/ClangAttrParsedAttrImpl tools/clang/include/clang/Sema/ClangAttrParsedAttrKinds tools/clang/include/clang/Sema/ClangAttrParsedAttrList tools/clang/include/clang/Sema/ClangAttrSpellingListIndex tools/clang/include/clang/Sema/ClangAttrTemplateInstantiate tools/clang/include/clang/Serialization/ClangAttrPCHRead tools/clang/include/clang/Serialization/ClangAttrPCHWrite
ARCH_FLAGS = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -mmacosx-version-min=12.7
LANGUAGE_COMPILE_FLAGS = -fPIC -fvisibility-inlines-hidden -fvisibility=hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wimplicit-fallthrough -Wcast-qual -Wno-unknown-pragmas -Wno-unused-but-set-variable -Wno-deprecated-copy -Wmissing-field-initializers -pedantic -Wno-long-long -Wno-switch -Wno-comment -fcolor-diagnostics -fms-extensions -Wno-language-extension-token -fno-common -Woverloaded-virtual -fno-strict-aliasing -Wno-nested-anon-types -O3 -DNDEBUG
LINK_FLAGS = -L/usr/local/opt/llvm/lib/ -L/usr/local/opt/llvm/lib/c++ -Wl -rpath /usr/local/opt/llvm/lib/c++ -Wl,-dead_strip -Wl,-install_name,@rpath/libdxcompiler.dylib -compatibility_version 3.7.0 -current_version 3.7.0
LINK_LIBRARIES = -Wl,-rpath,@executable_path/../lib lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMDXIL.a lib/libLLVMDxilContainer.a lib/libLLVMDxilPIXPasses.a lib/libLLVMDxilRootSignature.a lib/libLLVMDxcBindingTable.a lib/libLLVMHLSL.a lib/libLLVMInstCombine.a lib/libLLVMipa.a lib/libLLVMipo.a lib/libLLVMIRReader.a lib/libLLVMLinker.a lib/libLLVMMSSupport.a lib/libLLVMOption.a lib/libLLVMProfileData.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMDxilCompression.a lib/libLLVMPassPrinters.a lib/libclangIndex.a lib/libclangRewrite.a lib/libclangCodeGen.a lib/libclangRewriteFrontend.a lib/libclangFrontend.a lib/libclangDriver.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangCodeGen.a lib/libclangLex.a lib/libclangTooling.a lib/libclangBasic.a lib/libclang.a lib/libclangSPIRV.a lib/libLLVMPasses.a lib/libclangIndex.a lib/libclangFormat.a lib/libclangTooling.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangASTMatchers.a -ldl lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libclangCodeGen.a lib/libclangFrontend.a lib/libclangSema.a lib/libclangEdit.a lib/libclangAST.a lib/libclangParse.a lib/libclangAnalysis.a lib/libLLVMDxilRootSignature.a lib/libLLVMipo.a lib/libLLVMVectorize.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMLinker.a lib/libLLVMScalarOpts.a lib/libLLVMInstCombine.a lib/libLLVMProfileData.a lib/libLLVMTarget.a lib/libclangDriver.a lib/libLLVMOption.a lib/libLLVMHLSL.a lib/libLLVMDxilContainer.a lib/libLLVMBitWriter.a lib/libLLVMTransformUtils.a lib/libLLVMDxcBindingTable.a lib/libLLVMipa.a lib/libLLVMAnalysis.a lib/libLLVMDXIL.a lib/libLLVMBitReader.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMCore.a lib/libLLVMDxcSupport.a lib/libLLVMSupport.a lib/libLLVMMSSupport.a -lpthread -lz -lm lib/libSPIRV-Tools-opt.a lib/libSPIRV-Tools.a
OBJECT_DIR = tools/clang/tools/dxcompiler/CMakeFiles/dxcompiler.dir
POST_BUILD = :
PRE_LINK = :
TARGET_FILE = lib/libdxcompiler.dylib
TARGET_PDB = dxcompiler.dylib.dbg
LINK_FLAGS
参数确实不一样,手敲这个才是对的,是我传入的CMAKE_SHARED_LINKER_FLAGS
Xmake 版本
v2.9.4
操作系统版本和架构
macOS Monterey 12.7.4
描述问题
测试命令:
这台电脑使用brew安装了llvm18工具链,因此测试编译时我传递了 toolchain、sdk和 ldflags 来链接到最新的libc++
但是在编译dxc时,CMAKE_SHARED_LINKER_FLAGS 参数并没有来自ldflags的参数,所以链接时会找不到一些内置函数
下面附加信息里有我这台电脑xmake生成的cmake config命令,可以看到
-DCMAKE_SHARED_LINKER_FLAGS
参数内没有ldflag设置的内容,不知道是不是失败的原因期待的结果
在设置ldflags时也可以成功编译
工程配置
附加信息和错误日志
生成的cmake命令
ninja编译报错日志