需要帮助在 Windows 10 上完成 fmt 的命令行安装
Posted
技术标签:
【中文标题】需要帮助在 Windows 10 上完成 fmt 的命令行安装【英文标题】:Need help completing command line installation of fmt on Windows 10需要帮助在 Windows 10 上完成 fmt 的命令行安装 【发布时间】:2020-12-16 19:45:02 【问题描述】:我是一名 Linux 用户,正在尝试在 Windows 上设置开发环境。我已经克隆了 fmt 存储库并按照我在 Linux 上习惯的方式构建它:
C:\Users\me\Development> git clone https://github.com/fmtlib/fmt.git
C:\Users\me\Development> cd fmt
C:\Users\me\Development> mkdir build
C:\Users\me\Development> cd build
C:\Users\me\Development> cmake ..
C:\Users\me\Development> cmake --build . --config Release
现在我想安装它,以便可以将它包含在项目中。通常我会$ sudo make install
,但我不确定在 Windows 上做什么,而且 fmt 文档页面没有任何用于 Windows 安装的内容。
当我使用 FLTK 执行相同的一组步骤时,我必须设置一个变量来帮助我找到东西:
# CMakeLists.txt
set(FLTK_DIR "Path/to/installation")
find_package(FLTK REQUIRED NO_MODULE)
但它似乎在寻找安装点,而不是构建目录。我怎样才能让它工作?
【问题讨论】:
你在windows下用的是什么编译器?cmake --build . --config Release
对于 Visual Studio 社区(msvc 编译器)来说是不够的,因为您很可能需要同时构建 Debug 和 Release。还要注意这个包在vcpkg
但它似乎在寻找安装点,而不是构建目录。我怎样才能让它工作?我一直使用 MSVC 的 build 文件夹。大多数情况下,我不会构建安装目标。
@drescherjm 我正在使用 MSVC,我认为它是默认的。我确实构建了 Debug 和 Release 版本。至于 vcpkg,我更倾向于使用柯南,但我也在学习 C++ 如何与 Windows 一起工作,所以我认为在引入包管理器之前手动安装库会给我带来经验。关于使用 build 文件夹很有趣。你通常把它放在哪里?如上所示,我只是将我的用户名放在我的主目录中,但是我需要将我的用户名硬编码到我不希望这样做的 cmake 文件中。
我有一个完全独立的源树与构建树。所以x:\CMakeBased\somehiearchy\ProjectX
将是源然后 x:\x64.XX\VC142\ProjectX 将是我为第 3 方库构建 projectX 的地方,它的x:\CMakeBased\Lib\LibName
用于构建在x:\x64.XX\VC142\Lib\LibName
中的源@ XX 是一个增量数字,因为我同时有几个构建树和一个源树。
这能回答你的问题吗? How to use CMake to install
【参考方案1】:
你可以运行:
cmake --install . [--prefix <install-dir>]
前缀是可选的。在 Windows 上,默认的 CMAKE_INSTALL_PREFIX 设置为:
C:/Program Files (x86)/<project name>
在 fmtlib 的情况下是:
C:/Program Files (x86)/FMT
另一种选择是在 Windows 上使用 vcpkg,它会在本地安装 fmtlib 到它自己的 vcpkg 安装前缀中。然后您可以通过以下方式使用它:
find_package(fmt REQUIRED)
add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE fmt::fmt)
您只需将 vcpkg cmake 工具链文件传递给您的 cmake 调用:
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
【讨论】:
以上是关于需要帮助在 Windows 10 上完成 fmt 的命令行安装的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助让bash / batch在Windows 10上为R工作