cmake .. -A X64 -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake编译问题

1.首先我参考如下步骤

img

2.当执行完第1~2步后,执行第3步使用cmake编译时,提示如下错误:

PS E:\vcpkg\vcpkg\build> cmake .. -A X64 -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake
CMake Error: The source directory "E:/vcpkg/vcpkg/build/root]/scripts/buildsystems/vcpkg.cmake" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.

在大家帮助后,修改命令为:

E:\vcpkg\vcpkg\build> cmake .. -A X64 "-DCMAKE_TOOLCHAIN_FILE=.\scripts\buildsystems\vcpkg.cmake"
CMake Error: The source directory "E:/vcpkg/vcpkg" does not appear to contain CMakeLists.txt.

也即E:/vcpkg/vcpkg目录下没有CMakeLists.txt文件。所以现在的问题是,为什么在按照步骤执行后,我的目录E:/vcpkg/vcpkg下没有CMakeLists.txt文件,这个文件是否是要自己编写的?由于是CMake初学者,能否有CMake使用人员指教一下,谢谢。
补充:我在看vcpkg官方github-window教程后,感觉是否在第2步和第3步之间缺少一句命令:
.\vcpkg integrate install
但执行过后,我的目录下还是没有CMakeLists.txt文件。

原因
需要注意32位、64位环境

解决方法

切换到命令行以使用 vscode 在 Windows 上运行项目,它运行完美。

Visual Studio 的问题是 vcpkg 安装 32 位版本,而 Visual Studio 正在寻找 x64 版本的库,所以只需强制安装 vcpkg x64 版本,而不是像下面的例子:

vcpkg install <Your library>:x64-windows

您还可以使用以下命令在 Visual Studio 代码中运行您的项目:

cmake . -GNinja -DCMAKE_TOOLCHAIN_FILE=<VCPKG installed folder>/vcpkg/scripts/buildsystems/vcpkg.cmake

之后运行:

ninja

然后运行你的项目。因为这个命令有效,但它的等效命令在 Visual Studio 上不起作用,我猜这是 Visual Studio 的错误。


参考链接:

除此之外
如果上述方法不生效,你可以尝试下 下面这个解决方法


如有问题及时沟通

把E:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake放到E:/vcpkg/vcpkg/build/root]/scripts/buildsystems/下面

使用
message("value of VARNAME: ${VARNAME}")
message(FATAL_ERROR "Error" ) #显示Error并退出编译链接生成过程
的方法调试CMake

应该是vcpkg.cmake文件路径没有指对造成的问题,你的
E:\vcpkg\vcpkg\build> cmake .. -A X64 "-DCMAKE_TOOLCHAIN_FILE=.\scripts\buildsystems\vcpkg.cmake"
改成
E:\vcpkg\vcpkg\build> cmake .. -A X64 "-DCMAKE_TOOLCHAIN_FILE=..\scripts\buildsystems\vcpkg.cmake"
应该就可以了。有帮助请采纳谢谢!