小编Miz*_*zux的帖子

为什么我无法在新的 ubuntu:22.04 中运行 `apt update`?

我目前无法apt update在新的ubuntu:22.04(代号jammy)内运行。

协议

$ docker --version
Docker version 20.10.2, build 2291f61

$ docker run --init --rm -it ubuntu:22.04
root@123456789:/# apt update
Run Code Online (Sandbox Code Playgroud)

观察到的

$ docker run --init --rm -it ubuntu:22.04
root@6444bf2cb8b4:/# apt update
Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [90.7 kB]            
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [90.7 kB] 
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [90.7 kB]             
Get:5 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]       
Get:7 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 …
Run Code Online (Sandbox Code Playgroud)

ubuntu docker

62
推荐指数
3
解决办法
3万
查看次数

从`cmake`使用`pkg-config`的正确方法是什么?

在网上四处看看我看到了很多这样的代码:

include(FindPkgConfig)
pkg_search_module(SDL2 REQUIRED sdl2)

target_include_directories(app SYSTEM PUBLIC ${SDL2_INCLUDE_DIRS}
target_link_libraries(app ${SDL2_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)

然而,这似乎是错误的方式,因为它只使用包含目录和库,但忽略了定义,库路径和可能返回的其他标志pkg-config.

这样做的正确方法是什么,并确保编译后pkg-config使用的所有编译和链接标志都被使用app?是否有一个命令来实现这一点,即类似的东西target_use(app SDL2)

pkg-config cmake

61
推荐指数
4
解决办法
4万
查看次数

如何使用CMake使用install-export和find_package查找并链接到库?

您有一个启用CMake的库项目.您需要在另一个库或可执行文件中使用它.如何使用CMake查找并链接到库?您可能具有以下首选项:

  • 写尽可能少量的样板代码
  • 将链接库的内部详细信息与使用目标分离

理想情况下,库的用法应如下所示:

add_executable(myexe ...)
target_link_libraries(myexe mylib::mylib)
Run Code Online (Sandbox Code Playgroud)

cmake

15
推荐指数
1
解决办法
6306
查看次数

如何更新 Windows 最新托管运行程序的 github 操作工作流文件中的 PATH

我目前正在尝试将 GitHub 操作工作流添加到存储库...

要进行 C++/CMake/swig/python 开发(即本机 python 库开发),我需要下载并安装 swigwin 并使其在PATH...

不幸的$env:Path...是,在接下来的后续步骤中似乎没有考虑该命令

例子

name: Python Windows CI

on: [push, pull_request]

jobs:
  # Building using the GitHub runner environment directly.
  build:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v2
    - name: Check cmake
      run: cmake --version
    - name: Install swig
      run: |
        (New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.1.zip","swigwin-4.0.1.zip");
        Expand-Archive .\swigwin-4.0.1.zip .;
        $env:Path += ";.\swigwin-4.0.1";
        swig -version;
    - name: Check swig
      run: swig -version # swig cmdlet not found...

Run Code Online (Sandbox Code Playgroud)

观察到的

> Set up …
Run Code Online (Sandbox Code Playgroud)

powershell path github-actions

8
推荐指数
3
解决办法
4931
查看次数

如何在 CentOS 7 docker (centos:7) 上安装 gcc/g++ 9

为了使用 C++17 include,<filesystem>我需要在 centos 7 docker 中安装 gcc-9 包。

默认情况下,centos:7 将从常规发行版存储库安装 gcc 4.8.5。

docker run --rm -it centos:7
# yum install -y gcc
# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松安装 gcc-9(或更高版本)包(即不从源代码构建它)

谢谢 !

注意:需要 gcc-9 才能有良好的 C++17<filesystem>支持。
GCC 9 发行说明:

使用 中的类型和函数<filesystem>不需要与-lstdc++fsnow 链接。

源代码: https: //gcc.gnu.org/gcc-9/changes.html

gcc docker centos7

8
推荐指数
1
解决办法
2万
查看次数

如何在 debian:latest docker 上安装 gcc-9

为了使用 C++17 包含,<filesystem>我需要gcc-9在我的 debian docker 中安装包。

默认情况下debian:latest(又名 10 或 buster)将从8.3.0常规发行版存储库安装 gcc 。

是否有任何 PPA、测试存储库等,我可以在其中轻松安装gcc-9(或更高版本)包(即不是从源代码构建它)

谢谢 !

注意:需要 gcc-9 才能有良好的 C++17<filesystem>支持。
GCC 9 发行说明:

使用中的类型和函数现在不需要与 -lstdc++fs 链接。

源代码:https : //gcc.gnu.org/gcc-9/changes.html

注意 2:CMake 3.16* 不支持任何 cxx_filesystem 编译器功能 AFAIK。

注意3:你可以在这里找到日志:https : //github.com/Mizux/KalistoUnpacker/runs/642516660? check_suite_focus=true

c++ debian gcc docker

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

如何在 GitHub 工作流程中安排和推送/拉请求事件?

如果触发 Push/pull_request 事件或触发计划事件时,我想运行工作流程...

这是我的错误(语法问题).github/workflows/docker.yml

name: Docker

on: [push, pull_request]
  schedule:
    # min hours day(month) month day(week)
    - cron: '0 0 */5 * *'

...
Run Code Online (Sandbox Code Playgroud)

不幸的是这个语法是错误的,错误如下:

Invalid workflow file
You have an error in your yaml syntax on line 3
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

如何获取 Google OR-Tools 的进度日志?

我正在使用 Google 的 OR-Tools 来解决 VRPtw 问题,并努力思考日志。
我向解算器提供一定数量的访问点和车辆。我不知道这需要多少时间,也就是说,甚至时间的尺度。
我们有什么办法可以获取进度信息吗?
我知道有一个 SearchLog 类(https://developers.google.com/optimization/reference/constraint_solver/constraint_solveri/SearchLog)。但我不明白这能给我我想要的信息。

python or-tools

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

CMAKE COMPILER_CXX_ID 行为

$<COMPILER_CXX_ID:Clang>
Run Code Online (Sandbox Code Playgroud)

将返回1ClangAppleClang

根据医生的说法,我会说是的,但我不确定......

1如果 CXX 编译器的 CMake-id 与comp匹配,否则0

源代码:https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html

源代码:https ://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html

c++ cmake

3
推荐指数
1
解决办法
2616
查看次数

如何在Google OR-Tools Route Optimization中限制每辆车的位置数量

我已经实施了 Or-Tools 来优化路线。它工作正常。我只想实现每辆车的位置限制数量。例如,为每辆车定义最多两 (2) 个位置。

我尝试过实施容量约束,但它不起作用。我还尝试实现 SetSpanUpperBoundForVehicle 函数,在这种情况下解决方案对象为空。

这是我的代码

RoutingDimension timeDimension = routing.GetMutableDimension("Time");
            timeDimension.SetSpanUpperBoundForVehicle(2, 0);
            timeDimension.SetSpanUpperBoundForVehicle(2, 1);
            timeDimension.SetSpanUpperBoundForVehicle(2, 2);
Run Code Online (Sandbox Code Playgroud)

我如何限制这条路线的数量?请帮忙。

c# or-tools

2
推荐指数
1
解决办法
1370
查看次数

如何在 CentOS 8 docker 上安装 gcc/g++ 9 (centos:latest)

为了使用 C++17 include,<filesystem>我需要在我的 centos docker 中使用gcc-9 包。

默认情况下,centos:latest(又名 8)将从常规发行版存储库安装 gcc 8.3.1。

是否有任何 PPA、测试 repo 等,我可以在其中轻松安装 gcc-9(或更高版本)包(即不是从源代码构建它)

谢谢 !

注意:需要 gcc-9 才能有良好的 C++17<filesystem>支持。
GCC 9 发行说明:

使用中的类型和函数<filesystem>不需要与-lstdc++fsnow链接。

源代码:https : //gcc.gnu.org/gcc-9/changes.html

注意 2:CMake 3.16* 不支持任何 cxx_filesystem 编译器功能 AFAIK。
参考:https : //cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html

注意3:你可以在这里找到日志:https : //github.com/Mizux/KalistoUnpacker/runs/642516660? check_suite_focus=true

c++ gcc centos docker

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

如何基于决策变量(一个用于行,一个用于列)从矩阵(python 中的列表列表)中选择一个元素 | 或工具,Python

我是约束编程和 OR-Tools 的新手。关于问题的简要说明。有 8 个位置,对于每个位置,我需要决定应选择哪种类型 A (move_A) 的移动和类型 B (move_B) 的移动,以便从 2 个移动的组合(在每个位置)获得的值是最大化。(虽然这只是更大问题的一部分)。我想用AddElement方法来做子设置。

请看下面的尝试

from ortools.sat.python import cp_model
model = cp_model.CpModel()

# value achieved from combination of different moves of type A
# (moves_A (rows)) and different moves of type B (moves_B (columns))
# for e.g. 2nd move of type A and 3rd move of type B will give value = 2
value = [
            [ -1,  5,  3,  2,  2],
            [  2,  4,  2, -1,  1], 
            [ …
Run Code Online (Sandbox Code Playgroud)

constraint-programming or-tools

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