p-ranav / fccf

fccf: A command-line tool that quickly searches through C/C++ source code in a directory based on a search string and prints relevant code snippets that match the query.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compilation error in ArchLinux

mortymacs opened this issue · comments

Hi :)

In the linking step, it can't find clang-related libraries while I already have installed Clang and LLVM both on my system.

$ cmake --build build                                                             via △ v3.23.1 took 8s
[ 11%] Building CXX object _deps/fmt-build/CMakeFiles/fmt.dir/src/format.cc.o
[ 22%] Building CXX object _deps/fmt-build/CMakeFiles/fmt.dir/src/os.cc.o
[ 33%] Linking CXX static library libfmt.a
[ 33%] Built target fmt
[ 44%] Building CXX object CMakeFiles/fccf_lib.dir/source/searcher.cpp.o
[ 55%] Building CXX object CMakeFiles/fccf_lib.dir/source/sse2_strstr.cpp.o
[ 66%] Building CXX object CMakeFiles/fccf_lib.dir/source/lexer.cpp.o
[ 77%] Building CXX object CMakeFiles/fccf_lib.dir/source/utf8.cpp.o
[ 77%] Built target fccf_lib
[ 88%] Building CXX object CMakeFiles/fccf_exe.dir/source/main.cpp.o
[100%] Linking CXX executable fccf
/usr/bin/ld: cannot find -lclangTooling: No such file or directory
/usr/bin/ld: cannot find -lclangFrontendTool: No such file or directory
/usr/bin/ld: cannot find -lclangFrontend: No such file or directory
/usr/bin/ld: cannot find -lclangDriver: No such file or directory
/usr/bin/ld: cannot find -lclangSerialization: No such file or directory
/usr/bin/ld: cannot find -lclangCodeGen: No such file or directory
/usr/bin/ld: cannot find -lclangParse: No such file or directory
/usr/bin/ld: cannot find -lclangSema: No such file or directory
/usr/bin/ld: cannot find -lclangStaticAnalyzerFrontend: No such file or directory
/usr/bin/ld: cannot find -lclangStaticAnalyzerCheckers: No such file or directory
/usr/bin/ld: cannot find -lclangStaticAnalyzerCore: No such file or directory
/usr/bin/ld: cannot find -lclangAnalysis: No such file or directory
/usr/bin/ld: cannot find -lclangARCMigrate: No such file or directory
/usr/bin/ld: cannot find -lclangEdit: No such file or directory
/usr/bin/ld: cannot find -lclangAST: No such file or directory
/usr/bin/ld: cannot find -lclangLex: No such file or directory
/usr/bin/ld: cannot find -lclangBasic: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/fccf_exe.dir/build.make:107: fccf] Error 1
make[1]: *** [CMakeFiles/Makefile2:228: CMakeFiles/fccf_exe.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

The Clang header directory:

ls -l /usr/include/clang
total 104
drwxr-xr-x 6 root root 4096 Apr  1 12:06 Analysis
drwxr-xr-x 2 root root 4096 Apr  1 12:06 APINotes
drwxr-xr-x 2 root root 4096 Apr  1 12:06 ARCMigrate
drwxr-xr-x 2 root root 4096 Apr  1 12:06 AST
drwxr-xr-x 3 root root 4096 Apr  1 12:06 ASTMatchers
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Basic
drwxr-xr-x 2 root root 4096 Apr  1 12:06 CodeGen
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Config
drwxr-xr-x 2 root root 4096 Apr  1 12:06 CrossTU
drwxr-xr-x 2 root root 4096 Apr  1 12:06 DirectoryWatcher
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Driver
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Edit
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Format
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Frontend
drwxr-xr-x 2 root root 4096 Apr  1 12:06 FrontendTool
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Index
drwxr-xr-x 2 root root 4096 Apr  1 12:06 IndexSerialization
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Interpreter
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Lex
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Parse
drwxr-xr-x 4 root root 4096 Apr  1 12:06 Rewrite
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Sema
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Serialization
drwxr-xr-x 5 root root 4096 Apr  1 12:06 StaticAnalyzer
drwxr-xr-x 2 root root 4096 Apr  1 12:06 Testing
drwxr-xr-x 9 root root 4096 Apr  1 12:06 Tooling

I'm using ArchLinux with latest update of all packages.

You need to install LLVM. I mention this here.

The build system is looking for libclang* that is part of the LLVM library.

/usr/lib/llvm-12$ ls -lart include/
total 72
-rw-r--r--  1 root root 47137 Apr 15  2021 ompt-multiplex.h
lrwxrwxrwx  1 root root    33 Sep  1  2021 llvm-c -> ../../../include/llvm-c-12/llvm-c
lrwxrwxrwx  1 root root    29 Sep  1  2021 llvm -> ../../../include/llvm-12/llvm
drwxr-xr-x  6 root root  4096 Apr 24 00:26 polly
drwxr-xr-x 28 root root  4096 Apr 24 00:26 clang
drwxr-xr-x  2 root root  4096 Apr 24 00:27 clang-c
drwxr-xr-x 29 root root  4096 Apr 24 00:27 clang-tidy
drwxr-xr-x  7 root root  4096 Apr 24 00:28 ..
drwxr-xr-x  6 root root  4096 Apr 24 00:28 .

/usr/lib/llvm-12$ ls lib/
LLVMPolly.so                    libLLVMHexagonAsmParser.a     libLLVMSparcDisassembler.a        libclangFrontendTool.a
LLVMgold.so                     libLLVMHexagonCodeGen.a       libLLVMSparcInfo.a                libclangHandleCXX.a
clang                           libLLVMHexagonDesc.a          libLLVMSupport.a                  libclangHandleLLVM.a
cmake                           libLLVMHexagonDisassembler.a  libLLVMSymbolize.a                libclangIncludeFixer.a
libLLVM-12.0.0.so               libLLVMHexagonInfo.a          libLLVMSystemZAsmParser.a         libclangIncludeFixerPlugin.a
libLLVM-12.0.0.so.1             libLLVMIRReader.a             libLLVMSystemZCodeGen.a           libclangIndex.a
libLLVM-12.so                   libLLVMInstCombine.a          libLLVMSystemZDesc.a              libclangIndexSerialization.a
libLLVM-12.so.1                 libLLVMInstrumentation.a      libLLVMSystemZDisassembler.a      libclangLex.a
libLLVM.so                      libLLVMInterfaceStub.a        libLLVMSystemZInfo.a              libclangMove.a
libLLVMAArch64AsmParser.a       libLLVMInterpreter.a          libLLVMTableGen.a                 libclangParse.a
libLLVMAArch64CodeGen.a         libLLVMJITLink.a              libLLVMTarget.a                   libclangQuery.a
libLLVMAArch64Desc.a            libLLVMLTO.a                  libLLVMTextAPI.a                  libclangReorderFields.a
libLLVMAArch64Disassembler.a    libLLVMLanaiAsmParser.a       libLLVMTransformUtils.a           libclangRewrite.a
libLLVMAArch64Info.a            libLLVMLanaiCodeGen.a         libLLVMVectorize.a                libclangRewriteFrontend.a
libLLVMAArch64Utils.a           libLLVMLanaiDesc.a            libLLVMWebAssemblyAsmParser.a     libclangSema.a
libLLVMAMDGPUAsmParser.a        libLLVMLanaiDisassembler.a    libLLVMWebAssemblyCodeGen.a       libclangSerialization.a
libLLVMAMDGPUCodeGen.a          libLLVMLanaiInfo.a            libLLVMWebAssemblyDesc.a          libclangStaticAnalyzerCheckers.a
libLLVMAMDGPUDesc.a             libLLVMLibDriver.a            libLLVMWebAssemblyDisassembler.a  libclangStaticAnalyzerCore.a
libLLVMAMDGPUDisassembler.a     libLLVMLineEditor.a           libLLVMWebAssemblyInfo.a          libclangStaticAnalyzerFrontend.a
libLLVMAMDGPUInfo.a             libLLVMLinker.a               libLLVMWindowsManifest.a          libclangTesting.a
libLLVMAMDGPUUtils.a            libLLVMMC.a                   libLLVMX86AsmParser.a             libclangTidy.a
libLLVMARMAsmParser.a           libLLVMMCA.a                  libLLVMX86CodeGen.a               libclangTidyAbseilModule.a
libLLVMARMCodeGen.a             libLLVMMCDisassembler.a       libLLVMX86Desc.a                  libclangTidyAlteraModule.a
libLLVMARMDesc.a                libLLVMMCJIT.a                libLLVMX86Disassembler.a          libclangTidyAndroidModule.a
libLLVMARMDisassembler.a        libLLVMMCParser.a             libLLVMX86Info.a                  libclangTidyBoostModule.a
libLLVMARMInfo.a                libLLVMMIRParser.a            libLLVMXCoreCodeGen.a             libclangTidyBugproneModule.a
libLLVMARMUtils.a               libLLVMMSP430AsmParser.a      libLLVMXCoreDesc.a                libclangTidyCERTModule.a
libLLVMAVRAsmParser.a           libLLVMMSP430CodeGen.a        libLLVMXCoreDisassembler.a        libclangTidyConcurrencyModule.a
libLLVMAVRCodeGen.a             libLLVMMSP430Desc.a           libLLVMXCoreInfo.a                libclangTidyCppCoreGuidelinesModule.a
libLLVMAVRDesc.a                libLLVMMSP430Disassembler.a   libLLVMXRay.a                     libclangTidyDarwinModule.a
libLLVMAVRDisassembler.a        libLLVMMSP430Info.a           libLLVMipo.a                      libclangTidyFuchsiaModule.a
libLLVMAVRInfo.a                libLLVMMipsAsmParser.a        libLTO.so                         libclangTidyGoogleModule.a
libLLVMAggressiveInstCombine.a  libLLVMMipsCodeGen.a          libLTO.so.12                      libclangTidyHICPPModule.a
libLLVMAnalysis.a               libLLVMMipsDesc.a             libPolly.a                        libclangTidyLLVMLibcModule.a
libLLVMAsmParser.a              libLLVMMipsDisassembler.a     libPollyISL.a                     libclangTidyLLVMModule.a
libLLVMAsmPrinter.a             libLLVMMipsInfo.a             libPollyPPCG.a                    libclangTidyLinuxKernelModule.a
libLLVMBPFAsmParser.a           libLLVMNVPTXCodeGen.a         libRemarks.so                     libclangTidyMPIModule.a
libLLVMBPFCodeGen.a             libLLVMNVPTXDesc.a            libRemarks.so.12                  libclangTidyMain.a
libLLVMBPFDesc.a                libLLVMNVPTXInfo.a            libarcher.so                      libclangTidyMiscModule.a
libLLVMBPFDisassembler.a        libLLVMObjCARCOpts.a          libarcher_static.a                libclangTidyModernizeModule.a
libLLVMBPFInfo.a                libLLVMObject.a               libclang-12.0.0.so                libclangTidyObjCModule.a
libLLVMBinaryFormat.a           libLLVMObjectYAML.a           libclang-12.so                    libclangTidyOpenMPModule.a
libLLVMBitReader.a              libLLVMOption.a               libclang-12.so.1                  libclangTidyPerformanceModule.a
libLLVMBitWriter.a              libLLVMOrcJIT.a               libclang-cpp.so.12                libclangTidyPlugin.a
libLLVMBitstreamReader.a        libLLVMOrcShared.a            libclang.so                       libclangTidyPortabilityModule.a
libLLVMCFGuard.a                libLLVMOrcTargetProcess.a     libclang.so.1                     libclangTidyReadabilityModule.a
libLLVMCodeGen.a                libLLVMPasses.a               libclangAPINotes.a                libclangTidyUtils.a
libLLVMCore.a                   libLLVMPerfJITEvents.a        libclangARCMigrate.a              libclangTidyZirconModule.a
libLLVMCoroutines.a             libLLVMPowerPCAsmParser.a     libclangAST.a                     libclangTooling.a
libLLVMCoverage.a               libLLVMPowerPCCodeGen.a       libclangASTMatchers.a             libclangToolingASTDiff.a
libLLVMDWARFLinker.a            libLLVMPowerPCDesc.a          libclangAnalysis.a                libclangToolingCore.a
libLLVMDebugInfoCodeView.a      libLLVMPowerPCDisassembler.a  libclangApplyReplacements.a       libclangToolingInclusions.a
libLLVMDebugInfoDWARF.a         libLLVMPowerPCInfo.a          libclangBasic.a                   libclangToolingRefactoring.a
libLLVMDebugInfoGSYM.a          libLLVMProfileData.a          libclangChangeNamespace.a         libclangToolingSyntax.a
libLLVMDebugInfoMSF.a           libLLVMRISCVAsmParser.a       libclangCodeGen.a                 libclangTransformer.a
libLLVMDebugInfoPDB.a           libLLVMRISCVCodeGen.a         libclangCrossTU.a                 libclangdRemoteIndex.a
libLLVMDemangle.a               libLLVMRISCVDesc.a            libclangDaemon.a                  libclangdSupport.a
libLLVMDlltoolDriver.a          libLLVMRISCVDisassembler.a    libclangDaemonTweaks.a            libfindAllSymbols.a
libLLVMExecutionEngine.a        libLLVMRISCVInfo.a            libclangDependencyScanning.a      libgomp.so
libLLVMExtensions.a             libLLVMRemarks.a              libclangDirectoryWatcher.a        libiomp5.so
libLLVMFileCheck.a              libLLVMRuntimeDyld.a          libclangDoc.a                     libomp-12.so.5
libLLVMFrontendOpenACC.a        libLLVMScalarOpts.a           libclangDriver.a                  libomp.so
libLLVMFrontendOpenMP.a         libLLVMSelectionDAG.a         libclangDynamicASTMatchers.a      libomp.so.5
libLLVMFuzzMutate.a             libLLVMSparcAsmParser.a       libclangEdit.a                    libomptarget.so
libLLVMGlobalISel.a             libLLVMSparcCodeGen.a         libclangFormat.a                  libomptarget.so.12
libLLVMHelloNew.a               libLLVMSparcDesc.a            libclangFrontend.a
/usr/lib/llvm-12$

Yeah, I already installed those requirements. But they're in /usr/lib/ and not /usr/lib/llvm-12:

$ ls /usr/lib/libLLVM*
/usr/lib/libLLVM-13.0.1.so		 /usr/lib/libLLVMLineEditor.a
/usr/lib/libLLVM-13.so			 /usr/lib/libLLVMLinker.a
/usr/lib/libLLVMAArch64AsmParser.a	 /usr/lib/libLLVMLTO.a
/usr/lib/libLLVMAArch64CodeGen.a	 /usr/lib/libLLVMMC.a
/usr/lib/libLLVMAArch64Desc.a		 /usr/lib/libLLVMMCA.a
/usr/lib/libLLVMAArch64Disassembler.a	 /usr/lib/libLLVMMCACustomBehaviourAMDGPU.a
/usr/lib/libLLVMAArch64Info.a		 /usr/lib/libLLVMMCDisassembler.a
/usr/lib/libLLVMAArch64Utils.a		 /usr/lib/libLLVMMCJIT.a
/usr/lib/libLLVMAggressiveInstCombine.a  /usr/lib/libLLVMMCParser.a
/usr/lib/libLLVMAMDGPUAsmParser.a	 /usr/lib/libLLVMMipsAsmParser.a
/usr/lib/libLLVMAMDGPUCodeGen.a		 /usr/lib/libLLVMMipsCodeGen.a
/usr/lib/libLLVMAMDGPUDesc.a		 /usr/lib/libLLVMMipsDesc.a
/usr/lib/libLLVMAMDGPUDisassembler.a	 /usr/lib/libLLVMMipsDisassembler.a
/usr/lib/libLLVMAMDGPUInfo.a		 /usr/lib/libLLVMMipsInfo.a
/usr/lib/libLLVMAMDGPUUtils.a		 /usr/lib/libLLVMMIRParser.a
/usr/lib/libLLVMAnalysis.a		 /usr/lib/libLLVMMSP430AsmParser.a
/usr/lib/libLLVMARMAsmParser.a		 /usr/lib/libLLVMMSP430CodeGen.a
/usr/lib/libLLVMARMCodeGen.a		 /usr/lib/libLLVMMSP430Desc.a
/usr/lib/libLLVMARMDesc.a		 /usr/lib/libLLVMMSP430Disassembler.a
/usr/lib/libLLVMARMDisassembler.a	 /usr/lib/libLLVMMSP430Info.a
/usr/lib/libLLVMARMInfo.a		 /usr/lib/libLLVMNVPTXCodeGen.a
/usr/lib/libLLVMARMUtils.a		 /usr/lib/libLLVMNVPTXDesc.a
/usr/lib/libLLVMAsmParser.a		 /usr/lib/libLLVMNVPTXInfo.a
/usr/lib/libLLVMAsmPrinter.a		 /usr/lib/libLLVMObjCARCOpts.a
/usr/lib/libLLVMAVRAsmParser.a		 /usr/lib/libLLVMObject.a
/usr/lib/libLLVMAVRCodeGen.a		 /usr/lib/libLLVMObjectYAML.a
/usr/lib/libLLVMAVRDesc.a		 /usr/lib/libLLVMOption.a
/usr/lib/libLLVMAVRDisassembler.a	 /usr/lib/libLLVMOrcJIT.a
/usr/lib/libLLVMAVRInfo.a		 /usr/lib/libLLVMOrcShared.a
/usr/lib/libLLVMBinaryFormat.a		 /usr/lib/libLLVMOrcTargetProcess.a
/usr/lib/libLLVMBitReader.a		 /usr/lib/libLLVMPasses.a
/usr/lib/libLLVMBitstreamReader.a	 /usr/lib/libLLVMPowerPCAsmParser.a
/usr/lib/libLLVMBitWriter.a		 /usr/lib/libLLVMPowerPCCodeGen.a
/usr/lib/libLLVMBPFAsmParser.a		 /usr/lib/libLLVMPowerPCDesc.a
/usr/lib/libLLVMBPFCodeGen.a		 /usr/lib/libLLVMPowerPCDisassembler.a
/usr/lib/libLLVMBPFDesc.a		 /usr/lib/libLLVMPowerPCInfo.a
/usr/lib/libLLVMBPFDisassembler.a	 /usr/lib/libLLVMProfileData.a
/usr/lib/libLLVMBPFInfo.a		 /usr/lib/libLLVMRemarks.a
/usr/lib/libLLVMCFGuard.a		 /usr/lib/libLLVMRISCVAsmParser.a
/usr/lib/libLLVMCFIVerify.a		 /usr/lib/libLLVMRISCVCodeGen.a
/usr/lib/libLLVMCodeGen.a		 /usr/lib/libLLVMRISCVDesc.a
/usr/lib/libLLVMCore.a			 /usr/lib/libLLVMRISCVDisassembler.a
/usr/lib/libLLVMCoroutines.a		 /usr/lib/libLLVMRISCVInfo.a
/usr/lib/libLLVMCoverage.a		 /usr/lib/libLLVMRuntimeDyld.a
/usr/lib/libLLVMDebugInfoCodeView.a	 /usr/lib/libLLVMScalarOpts.a
/usr/lib/libLLVMDebugInfoDWARF.a	 /usr/lib/libLLVMSelectionDAG.a
/usr/lib/libLLVMDebugInfoGSYM.a		 /usr/lib/libLLVM.so
/usr/lib/libLLVMDebugInfoMSF.a		 /usr/lib/libLLVMSparcAsmParser.a
/usr/lib/libLLVMDebugInfoPDB.a		 /usr/lib/libLLVMSparcCodeGen.a
/usr/lib/libLLVMDemangle.a		 /usr/lib/libLLVMSparcDesc.a
/usr/lib/libLLVMDlltoolDriver.a		 /usr/lib/libLLVMSparcDisassembler.a
/usr/lib/libLLVMDWARFLinker.a		 /usr/lib/libLLVMSparcInfo.a
/usr/lib/libLLVMDWP.a			 /usr/lib/libLLVMSupport.a
/usr/lib/libLLVMExecutionEngine.a	 /usr/lib/libLLVMSymbolize.a
/usr/lib/libLLVMExegesis.a		 /usr/lib/libLLVMSystemZAsmParser.a
/usr/lib/libLLVMExegesisAArch64.a	 /usr/lib/libLLVMSystemZCodeGen.a
/usr/lib/libLLVMExegesisMips.a		 /usr/lib/libLLVMSystemZDesc.a
/usr/lib/libLLVMExegesisPowerPC.a	 /usr/lib/libLLVMSystemZDisassembler.a
/usr/lib/libLLVMExegesisX86.a		 /usr/lib/libLLVMSystemZInfo.a
/usr/lib/libLLVMExtensions.a		 /usr/lib/libLLVMTableGen.a
/usr/lib/libLLVMFileCheck.a		 /usr/lib/libLLVMTableGenGlobalISel.a
/usr/lib/libLLVMFrontendOpenACC.a	 /usr/lib/libLLVMTarget.a
/usr/lib/libLLVMFrontendOpenMP.a	 /usr/lib/libLLVMTextAPI.a
/usr/lib/libLLVMFuzzMutate.a		 /usr/lib/libLLVMTransformUtils.a
/usr/lib/libLLVMGlobalISel.a		 /usr/lib/libLLVMVectorize.a
/usr/lib/libLLVMHexagonAsmParser.a	 /usr/lib/libLLVMWebAssemblyAsmParser.a
/usr/lib/libLLVMHexagonCodeGen.a	 /usr/lib/libLLVMWebAssemblyCodeGen.a
/usr/lib/libLLVMHexagonDesc.a		 /usr/lib/libLLVMWebAssemblyDesc.a
/usr/lib/libLLVMHexagonDisassembler.a	 /usr/lib/libLLVMWebAssemblyDisassembler.a
/usr/lib/libLLVMHexagonInfo.a		 /usr/lib/libLLVMWebAssemblyInfo.a
/usr/lib/libLLVMInstCombine.a		 /usr/lib/libLLVMWebAssemblyUtils.a
/usr/lib/libLLVMInstrumentation.a	 /usr/lib/libLLVMWindowsManifest.a
/usr/lib/libLLVMInterfaceStub.a		 /usr/lib/libLLVMX86AsmParser.a
/usr/lib/libLLVMInterpreter.a		 /usr/lib/libLLVMX86CodeGen.a
/usr/lib/libLLVMipo.a			 /usr/lib/libLLVMX86Desc.a
/usr/lib/libLLVMIRReader.a		 /usr/lib/libLLVMX86Disassembler.a
/usr/lib/libLLVMJITLink.a		 /usr/lib/libLLVMX86Info.a
/usr/lib/libLLVMLanaiAsmParser.a	 /usr/lib/libLLVMXCoreCodeGen.a
/usr/lib/libLLVMLanaiCodeGen.a		 /usr/lib/libLLVMXCoreDesc.a
/usr/lib/libLLVMLanaiDesc.a		 /usr/lib/libLLVMXCoreDisassembler.a
/usr/lib/libLLVMLanaiDisassembler.a	 /usr/lib/libLLVMXCoreInfo.a
/usr/lib/libLLVMLanaiInfo.a		 /usr/lib/libLLVMXRay.a
/usr/lib/libLLVMLibDriver.a

I also checked the output of llvm-config command:

$ llvm-config --libs all
-lLLVM-13

I see your output showing libLLVM*.

Do you have all the libclang* libraries? Your build error suggests that these libraries are missing.

I think it should be OK if they are in /usr/lib. CMake build should be able to find it.

~$ ls /usr/lib/llvm-12/lib/libclang*
/usr/lib/llvm-12/lib/libclang-12.0.0.so            /usr/lib/llvm-12/lib/libclangStaticAnalyzerCheckers.a
/usr/lib/llvm-12/lib/libclang-12.so                /usr/lib/llvm-12/lib/libclangStaticAnalyzerCore.a
/usr/lib/llvm-12/lib/libclang-12.so.1              /usr/lib/llvm-12/lib/libclangStaticAnalyzerFrontend.a
/usr/lib/llvm-12/lib/libclang-cpp.so.12            /usr/lib/llvm-12/lib/libclangTesting.a
/usr/lib/llvm-12/lib/libclang.so                   /usr/lib/llvm-12/lib/libclangTidy.a
/usr/lib/llvm-12/lib/libclang.so.1                 /usr/lib/llvm-12/lib/libclangTidyAbseilModule.a
/usr/lib/llvm-12/lib/libclangAPINotes.a            /usr/lib/llvm-12/lib/libclangTidyAlteraModule.a
/usr/lib/llvm-12/lib/libclangARCMigrate.a          /usr/lib/llvm-12/lib/libclangTidyAndroidModule.a
/usr/lib/llvm-12/lib/libclangAST.a                 /usr/lib/llvm-12/lib/libclangTidyBoostModule.a
/usr/lib/llvm-12/lib/libclangASTMatchers.a         /usr/lib/llvm-12/lib/libclangTidyBugproneModule.a
/usr/lib/llvm-12/lib/libclangAnalysis.a            /usr/lib/llvm-12/lib/libclangTidyCERTModule.a
/usr/lib/llvm-12/lib/libclangApplyReplacements.a   /usr/lib/llvm-12/lib/libclangTidyConcurrencyModule.a
/usr/lib/llvm-12/lib/libclangBasic.a               /usr/lib/llvm-12/lib/libclangTidyCppCoreGuidelinesModule.a
/usr/lib/llvm-12/lib/libclangChangeNamespace.a     /usr/lib/llvm-12/lib/libclangTidyDarwinModule.a
/usr/lib/llvm-12/lib/libclangCodeGen.a             /usr/lib/llvm-12/lib/libclangTidyFuchsiaModule.a
/usr/lib/llvm-12/lib/libclangCrossTU.a             /usr/lib/llvm-12/lib/libclangTidyGoogleModule.a
/usr/lib/llvm-12/lib/libclangDaemon.a              /usr/lib/llvm-12/lib/libclangTidyHICPPModule.a
/usr/lib/llvm-12/lib/libclangDaemonTweaks.a        /usr/lib/llvm-12/lib/libclangTidyLLVMLibcModule.a
/usr/lib/llvm-12/lib/libclangDependencyScanning.a  /usr/lib/llvm-12/lib/libclangTidyLLVMModule.a
/usr/lib/llvm-12/lib/libclangDirectoryWatcher.a    /usr/lib/llvm-12/lib/libclangTidyLinuxKernelModule.a
/usr/lib/llvm-12/lib/libclangDoc.a                 /usr/lib/llvm-12/lib/libclangTidyMPIModule.a
/usr/lib/llvm-12/lib/libclangDriver.a              /usr/lib/llvm-12/lib/libclangTidyMain.a
/usr/lib/llvm-12/lib/libclangDynamicASTMatchers.a  /usr/lib/llvm-12/lib/libclangTidyMiscModule.a
/usr/lib/llvm-12/lib/libclangEdit.a                /usr/lib/llvm-12/lib/libclangTidyModernizeModule.a
/usr/lib/llvm-12/lib/libclangFormat.a              /usr/lib/llvm-12/lib/libclangTidyObjCModule.a
/usr/lib/llvm-12/lib/libclangFrontend.a            /usr/lib/llvm-12/lib/libclangTidyOpenMPModule.a
/usr/lib/llvm-12/lib/libclangFrontendTool.a        /usr/lib/llvm-12/lib/libclangTidyPerformanceModule.a
/usr/lib/llvm-12/lib/libclangHandleCXX.a           /usr/lib/llvm-12/lib/libclangTidyPlugin.a
/usr/lib/llvm-12/lib/libclangHandleLLVM.a          /usr/lib/llvm-12/lib/libclangTidyPortabilityModule.a
/usr/lib/llvm-12/lib/libclangIncludeFixer.a        /usr/lib/llvm-12/lib/libclangTidyReadabilityModule.a
/usr/lib/llvm-12/lib/libclangIncludeFixerPlugin.a  /usr/lib/llvm-12/lib/libclangTidyUtils.a
/usr/lib/llvm-12/lib/libclangIndex.a               /usr/lib/llvm-12/lib/libclangTidyZirconModule.a
/usr/lib/llvm-12/lib/libclangIndexSerialization.a  /usr/lib/llvm-12/lib/libclangTooling.a
/usr/lib/llvm-12/lib/libclangLex.a                 /usr/lib/llvm-12/lib/libclangToolingASTDiff.a
/usr/lib/llvm-12/lib/libclangMove.a                /usr/lib/llvm-12/lib/libclangToolingCore.a
/usr/lib/llvm-12/lib/libclangParse.a               /usr/lib/llvm-12/lib/libclangToolingInclusions.a
/usr/lib/llvm-12/lib/libclangQuery.a               /usr/lib/llvm-12/lib/libclangToolingRefactoring.a
/usr/lib/llvm-12/lib/libclangReorderFields.a       /usr/lib/llvm-12/lib/libclangToolingSyntax.a
/usr/lib/llvm-12/lib/libclangRewrite.a             /usr/lib/llvm-12/lib/libclangTransformer.a
/usr/lib/llvm-12/lib/libclangRewriteFrontend.a     /usr/lib/llvm-12/lib/libclangdRemoteIndex.a
/usr/lib/llvm-12/lib/libclangSema.a                /usr/lib/llvm-12/lib/libclangdSupport.a
/usr/lib/llvm-12/lib/libclangSerialization.a

The static libraries are not part of the package clang in ArchLinux. There are only the shared libraries libclang.so and libclang-cpp.so. Linking just against libclang.so works.

The static libraries are not part of the package clang in ArchLinux. There are only the shared libraries libclang.so and libclang-cpp.so. Linking just against libclang.so works.

So, what you've changed to get it compiled?

I removed all the extra static libraries from the linking configuration.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa503f4..25d127a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -132,23 +132,6 @@ target_link_libraries(fccf_exe PRIVATE fccf_lib
   fmt::fmt
   ${LLVM_LIBRARIES}
   clang
-  clangTooling
-  clangFrontendTool
-  clangFrontend
-  clangDriver
-  clangSerialization
-  clangCodeGen
-  clangParse
-  clangSema
-  clangStaticAnalyzerFrontend
-  clangStaticAnalyzerCheckers
-  clangStaticAnalyzerCore
-  clangAnalysis
-  clangARCMigrate
-  clangEdit
-  clangAST
-  clangLex
-  clangBasic
   )
 
 # ---- Install rules ----

I've made this update (here 0c8504c) since these are unnecessary in Ubuntu as well.

Thanks @tetzank. Hope it works for you @mortymacs.

Thanks, @tetzank, and @p-ranav !
Awesome! it works fine!
@p-ranav would you please release it? because I wanna create the AUR package for your project :)