如何在我的cpp项目(win)中使用include-what-you-use ?



这里没有问题,但是我可以设法安装include-what-you-use…我需要下载哪些文件,哪个是我需要指向CMAKE_PREFIX_PATH的正确文件夹?或者有没有别的方法不用我自己构建就可以使用iwyu ?我希望能够在我的cmake项目中使用iwyu。我需要在windows上构建。

我切换到clang_15分支,下载并解压缩clang+llvm-15.0.0-amd64-pc-solaris2.11.tar。Xz从https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.0并运行cmake,但它抛出这个错误多次:

CMake Error at C:/Users/morit/Documents/dev/iwyu/clang+llvm-15.0.0-amd64-pc-solaris2.11/clang+llvm-15.0.0-amd64-pc-solaris2.11/lib/cmake/llvm/AddLLVM.cmake:932 (add_executable):
Target "include-what-you-use" links to target "ZLIB::ZLIB" but the target
was not found.  Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
Call Stack (most recent call first):
CMakeLists.txt:101 (add_llvm_executable)

下载LLVM-15.0.0-win64.exe也不工作

我运行cmake与cmake -S . -B build "-DCMAKE_PREFIX_PATH=C:Program FilesLLVM"(从源代码树,与构建作为构建文件夹)我不想自己构建clang,因为这会花费很长时间。

您最有可能遇到的问题是您正在使用binaries构建具有特定的编译器a. 然而,您正在使用不同的编译器B构建项目。并试图包括binaries编译器A.

这将不起作用,因为binaries是不同的!您需要对库和当前项目使用相同的编译器。这很可能是您的CMake无法找到现有库和已安装库的原因。

编辑:如果你使用相同的编译器。然后问题是由于缺少依赖项ZLIB而导致的错误状态。

EDIT2:要回答您关于CMAKE_PREFIX_PATH的问题,您应该忘记它,而是更新您的CMAKE_MODULE_PATH,这是一个列表变量。这个变量应该包含pathfindZLIB.cmake文件(分别是给定依赖项的findXYZ.cmake文件)。库的作者应该包括他使用的依赖项列表,如果没有,您可以查看CMakeLists.txt文件以获取所需信息。

最新更新