标签: vcpkg

使用 Cmake-gui 和 vcpkg

我正在为我的项目测试 vcpkg,但遇到了 cmake-gui 的问题

我已经安装了 vcpkg,在 vcpkg 的帮助下安装了 Boost 库。当我通过命令行编译时,一切正常。我使用命令

cmake .. -DCMAKE_TOOLCHAIN_FILE=D:/repos/vcpkg/scripts/buildsystems/vcpkg.cmake -G"Visual Studio 15 Win64"
Run Code Online (Sandbox Code Playgroud)

但问题是当我想使用 cmake-gui 生成构建文件时。它报告未找到 Boost。

我试着添加

set(CMAKE_TOOLCHAIN_FILE "D:/repos/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Path for vcpkg.cmake")
Run Code Online (Sandbox Code Playgroud)

到我的 Makefile 的顶部,但它没有帮助。我也尝试了 add_definitions 和 add_compile_options,但没有成功。

那么我应该在我的 cmake 文件中添加什么才能将 cmake-gui 与 vcpkg 一起使用?

c++ boost cmake cmake-gui vcpkg

5
推荐指数
1
解决办法
2011
查看次数

用于目标及其 SO 依赖项的 CMake `INSTALL`

我的目标与几个使用TARGET_LINK_LIBRARIESwithPUBLIC关键字的库链接,INSTALL命令看起来像INSTALL(TARGETS foo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin). 我想以某种方式强制 cmake 包含我链接的所有(最好不包括系统库)库(仅限 SO)以包含在安装过程中。我试过 EXPORT 关键字,但看起来它只影响我在项目中构建的库,并标记为与库相同EXPORTfoo库。
是否可以?
EDIT001:可能影响答案的附加信息。我正在使用vcpkg来管理第三方。所以TARGET_LINK_LIBRARIES看起来像

TARGET_LINK_LIBRARIES(foo PUBLIC
                      GTest::GTest
                      GTest::Main
                      ${GOOGLE_MOCK}
                      event
                      ${THRIFT_LIBRARIES}
                      ${Boost_LIBRARIES}
                      lzo2
                      sqlite3
                      ${ZeroMQ_LIBRARY}
                      gRPC::grpc
                      gRPC::grpc++
                      xml2
                      stdc++fs
                      bfd
                      -l:libisal.so.2
                      sgutils2
                      pthread
                      uuid
                      rt
                      )
Run Code Online (Sandbox Code Playgroud)

所以,本质上我想要实现的是获取所有这些被宏化的库vcpkg,像${THRIFT_LIBRARIES}, ${Boost_LIBRARIES} and gRPC::grpc等等

c++ cmake vcpkg

5
推荐指数
2
解决办法
3850
查看次数

让 vcpkg 只构建发布版本

我试图只构建包的发布版本,因为创建调试版本需要太长时间/太多空间。Vcpkg 文档指出:

在三元组中添加 set(VCPKG_BUILD_TYPE release):将导致大多数端口只构建发布

在终端运行时set(VCPKG_BUILD_TYPE release)我得到

syntax error near unexpected token 'VCPKG_BUILD_TYPE'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

cmake vcpkg

5
推荐指数
1
解决办法
2822
查看次数

通过 vcpkg 安装旧版本的 protobuf

我通过 vcpkg 安装了 protobuf vcpkg install protobuf:x64-windows。显然它安装了最新版本(3.6.1)。对于我需要版本<=3.5.1的项目。有没有办法使用 vcpkg 安装它?现在我只是使用 cmake 构建了 3.5.1,但是项目正在使用 vcpkg 的路径寻找 protobuf,我真的不知道是否允许我更改代码。

protobuf-c vcpkg

5
推荐指数
2
解决办法
2304
查看次数

vcpkg:回忆安装包后显示的 CMake 说明?

使用 vcpkg 安装软件包后,将显示帮助文本,例如...

The package fmt:x64-windows provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt fmt::fmt-header-only)
Run Code Online (Sandbox Code Playgroud)

...用于将它们与 CMake 一起使用所需的不同说明。如果您将来想回忆它而没有写下来,您从哪里获得这些信息?一些图书馆有比上述更多的指令。

c++ cmake vcpkg

5
推荐指数
1
解决办法
327
查看次数

使用 vcpkg 安装 GTK3 的主题和图标问题

我在 Windows 10 上使用 Visual Studio 2019 并尝试在 C++ 中使用 GTK 并使用 vcpkg 安装它。

我已经vcpkg根据GTK的指南安装了GTK。我使用Visual Studio 2019,它是能够编译和运行示例程序在这里,但有关主题和图标的问题。根据安装指南,在构建和分发应用程序部分下,必须执行一些操作才能使主题和图标正常工作。

我首先下载指南建议的 Windows 主题并将其放在一个share目录中,然后我settings.ini在一个etc目录中创建了一个文件。它说将它放在“安装目录”中,我认为这是 Visual Studio 为程序放置 exe 的地方。我在构建和发布、源文件、顶级项目目录中都尝试过它 - 都没有成功(我确实确保它面向 x64)。

以防万一,我也尝试将它们放置在安装 vcpkg 的位置以及安装 vcpkg 的 gtk 位置。没运气。当程序运行时,我收到警告

(gtkExample0.exe:16772): Gtk-WARNING **: Could not find the icon 'window-minimize-symbolic-ltr'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
        http://icon-theme.freedesktop.org/releases …
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio gtk3 vcpkg

5
推荐指数
1
解决办法
1136
查看次数

如何跨多个项目管理vcpkg?

我很想使用 vcpkg 来管理我们与第三方库的依赖关系,但我不确定这在我们的环境中如何工作。我们的解决方案中有数百个项目,并随着时间的推移发布软件的新版本。这是软件开发中很常见的情况,但我不明白vcpkg如何有效工作。

全局安装将不起作用。我们需要将我们的版本与特定版本的软件包联系起来。所以我们只能使用清单。在清单中,您指定一个“内置基线”,这是将项目的构建固定到某个时间点的好方法,并且可以保证不同包之间的依赖关系是正确的。

对于一个项目来说这一切都很棒。一个人如何管理数百个项目?

  • 我们希望在所有项目中使用相同的基线。有没有一种方法可以在一个地方指定内置基线?
  • 有些包对于所有项目都是通用的。有没有一种方法可以在一个地方指定这一点?
  • 我们使用项目文件进行构建。默认情况下,vcpkg 使用项目本地安装目录。我们不需要数百份 boost 副本。“安装目录”有一个 vcpkg 项目设置,它允许全局位置。但同样,此设置是针对每个项目的。我没有看到与 .props 文件的任何集成。有办法管理这个吗?
  • 有没有办法获得所有包的解决方案范围列表?

使用 CMake 会让这一切变得更容易吗?

windows open-source visual-studio vcpkg

5
推荐指数
0
解决办法
374
查看次数

如何修复“Vcpkg/CMake 无法确定目标架构”(Windows10、vcpkg、clion、cmake)

我想使用这个库见:https : //github.com/jtv/libpqxx

我决定安装这个库管理器 vcpkg 见:https : //github.com/microsoft/vcpkg

我将 CMake 选项设置为“CMake 项目应该使用:”-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake”

这是错误:

"C:\Program Files\JetBrains\CLion 2019.1.4\bin\cmake\win\bin\cmake.exe"     -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/vcpkg/scripts   /buildsystems/vcpkg.cmake -G "CodeBlocks - MinGW Makefiles" C:\Users  \Vaio\CLionProjects\untitled
CMake Warning at C:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake:68   (message):
Unable to determine target architecture, continuing without vcpkg.
Call Stack (most recent call first):
cmake-build-debug-mingw/CMakeFiles/3.14.3/CMakeSystem.cmake:6 (include)
CMakeLists.txt:2 (project)
Run Code Online (Sandbox Code Playgroud)

相应的 CMake 代码是这样的:

if(VCPKG_TARGET_TRIPLET)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Ww][Ii][Nn]32$")
    set(_VCPKG_TARGET_TRIPLET_ARCH x86)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Xx]64$")
    set(_VCPKG_TARGET_TRIPLET_ARCH x64)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]$")
    set(_VCPKG_TARGET_TRIPLET_ARCH arm)
elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]64$")
    set(_VCPKG_TARGET_TRIPLET_ARCH arm64)
else()
    if(CMAKE_GENERATOR MATCHES "^Visual Studio …
Run Code Online (Sandbox Code Playgroud)

c++ windows cmake clion vcpkg

4
推荐指数
1
解决办法
3217
查看次数

vcpkg 注册表版本和 port_version

创建 vcpkg 注册表的文档中我看到

{
  "versions": [
    {
      "version": "2.6.3",
      "port-version": 0,
      "path": "$/ports/kitten/2.6.3_0"
    },
    {
      "version": "2.6.2",
      "port-version": 0,
      "path": "$/ports/kitten/2.6.2_0"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

为什么我们需要port_version,还不够version

vcpkg

4
推荐指数
1
解决办法
570
查看次数

如何在 Linux 上将 vcpkg 与 clang 一起使用?

vcpkg在Linux上默认使用GCC安装包。我看到官方文档提到了自定义三元组方法,但没有提到clang工具链。

如何指定clang和libc++作为vcpkg的默认工具链?

clang libc++ vcpkg

4
推荐指数
1
解决办法
1757
查看次数

标签 统计

vcpkg ×10

c++ ×5

cmake ×5

visual-studio ×2

windows ×2

boost ×1

clang ×1

clion ×1

cmake-gui ×1

gtk3 ×1

libc++ ×1

open-source ×1

protobuf-c ×1