DavidSpickett wrote: Not so sure about that: ``` LINK: command "C:\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\link.exe /nologo tools\clang\tools\clang-format\CMakeFiles\clang-format.dir\ClangFormat.cpp.obj tools\clang\tools\clang-format\CMakeFiles\clang-format.dir\C_\ws\src\llvm\resources\windows_version_resource.rc.res /out:bin\clang-format.exe /implib:lib\clang-format.lib /pdb:bin\clang-format.pdb /version:0.0 /machine:x64 /STACK:10000000 /INCREMENTAL:NO /subsystem:console lib\LLVMSupport.lib lib\clangBasic.lib lib\clangFormat.lib lib\clangRewrite.lib lib\clangToolingCore.lib lib\clangToolingInclusions.lib lib\clangToolingCore.lib lib\clangRewrite.lib lib\clangLex.lib lib\clangBasic.lib lib\LLVMFrontendOpenMP.lib lib\LLVMScalarOpts.lib lib\LLVMAggressiveInstCombine.lib lib\LLVMInstCombine.lib lib\LLVMFrontendOffloading.lib lib\LLVMTransformUtils.lib lib\LLVMAnalysis.lib lib\LLVMProfileData.lib lib\LLVMSymbolize.lib lib\LLVMDebugInfoPDB.lib C:\BuildTools\DIA SDK\lib\amd64\diaguids.lib lib\LLVMDebugInfoMSF.lib lib\LLVMDebugInfoBTF.lib lib\LLVMDebugInfoDWARF.lib lib\LLVMObject.lib lib\LLVMIRReader.lib lib\LLVMBitReader.lib lib\LLVMAsmParser.lib lib\LLVMCore.lib lib\LLVMRemarks.lib lib\LLVMBitstreamReader.lib lib\LLVMMCParser.lib lib\LLVMMC.lib lib\LLVMDebugInfoCodeView.lib lib\LLVMTextAPI.lib lib\LLVMBinaryFormat.lib lib\LLVMTargetParser.lib lib\LLVMSupport.lib psapi.lib shell32.lib ole32.lib uuid.lib advapi32.lib WS2_32.lib delayimp.lib -delayload:shell32.dll -delayload:ole32.dll lib\LLVMDemangle.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:bin\clang-format.exe.manifest" failed (exit code 1120) with the following output: clangBasic.lib(ARM.cpp.obj) : error LNK2019: unresolved external symbol "private: void __cdecl clang::APValue::DestroyDataAndMakeUninit(void)" (?DestroyDataAndMakeUninit@APValue@clang@@AEAAXXZ) referenced in function "public: __cdecl clang::APValue::~APValue(void)" (??1APValue@clang@@QEAA@XZ) bin\clang-format.exe : fatal error LNK1120: 1 unresolved externals ```
``` clangBasic.lib(ARM.cpp.obj) : error LNK2019: unresolved external symbol "private: void __cdecl clang::APValue::DestroyDataAndMakeUninit(void)" ``` Which is the file you're modifying. I see that you have added: ``` #include "clang/AST/Attr.h" ``` `DestroyDataAndMakeUninit` is in `clang/lib/AST/APValue.cpp`, which is built into the library `clangAST`. `clang/lib/Basic/Targets/ARM.cpp` is built into `clangBasic` which does not depend on `clangAST`, but does `target_link_libraries` for it. I'm not sure of the difference there, why do one or the other. (clang/lib/Basic/CMakeLists.txt) (if you want to know what library a cpp file ends up in, look in the same folder for a CMakeLists.txt, that usually has the name, one folder up if not and so on) So I guess that on Linux, `target_link_libraries` does what's required but on Windows it does not. https://github.com/llvm/llvm-project/pull/74812 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits