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

Reply via email to