我把四个 lib 文件放在了 deps 文件夹下,请问在执行 cmake --build . --config Debug --target dandelion --parallel 8 指令时为什么会出现无法解析的外部符号以及如何将 powershell 改为 64 位?
首先你的理解有问题,你构建时的目标架构是 x86 而非 x64 通常和 PowerShell 的版本无关,它应当总是 64 位的(Windows 10 和 PowerShell 的 32 位版本非常少见)。
我看到图中最后的输出是
NMAKE: fatal error
这意味着 CMake 此时生成了 nmake 工程而不是 Visual Studio 解决方案,这不是我们推荐的构建方式。建议清空 build 目录下的所有文件,并按照如下方法尝试指定生成 VS 工程文件:
CMake 的构建后端称为 generator 。根据你自己的 VS 版本,请参考官方文档 Visual Studio 16 2019 (VS 2019) 或 Visual Studio 17 2022 (VS 2022) ,用 -G
参数设置 generator 为 Visual Studio,用 -A x64
参数设置目标平台为 x64。
我用 CLion,自动读 CMakeLists.txt 生成编译子文件夹。不管怎样我之前用 ROS 和 pybind11 的经验告诉我 C/C++ 的依赖管理简直是噩梦,Makefile cmake ninja bazel meson 全都是修修补补,还是现代语言自带包管理的 Go/Rust 用起来舒服