我目前无法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) 在网上四处看看我看到了很多这样的代码:
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)?
您有一个启用CMake的库项目.您需要在另一个库或可执行文件中使用它.如何使用CMake查找并链接到库?您可能具有以下首选项:
理想情况下,库的用法应如下所示:
add_executable(myexe ...)
target_link_libraries(myexe mylib::mylib)
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试将 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) 为了使用 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
为了使用 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
如果触发 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) 我正在使用 Google 的 OR-Tools 来解决 VRPtw 问题,并努力思考日志。
我向解算器提供一定数量的访问点和车辆。我不知道这需要多少时间,也就是说,甚至时间的尺度。
我们有什么办法可以获取进度信息吗?
我知道有一个 SearchLog 类(https://developers.google.com/optimization/reference/constraint_solver/constraint_solveri/SearchLog)。但我不明白这能给我我想要的信息。
做
$<COMPILER_CXX_ID:Clang>
Run Code Online (Sandbox Code Playgroud)
将返回1和ClangAppleClang
根据医生的说法,我会说是的,但我不确定......
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
我已经实施了 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++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
我是约束编程和 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)