小编Flo*_*ers的帖子

通过DNS多个GitHub页面和自定义域

我希望有一个用户页面和多个项目页面由GitHub页面托管,但在一个自定义域下可用(当然,每个GitHub页面存储库都有子域名).所以我的目标如下:

根据我目前的理解,GitHub Pages仅允许在Git存储库的根目录中的文件中定义的页面(用户页面和项目页面)的一个 CNAME资源记录CNAME.我已经尝试了很多东西(在我的域名提供商EUserv中使用DNS记录和标题重定向,但我只能在一个URL下访问我的GitHub用户页面(http://blog.florianwolters.de).我知道DNS更改可能需要两天时间.

有人可以向我解释,我如何才能实现上述目标?我无法相信这是不可能的,但我也不是DNS专家等.

如果以上情况不可能:您建议的解决方法是什么?我想要访问一个域(以及该域的子域)下的所有GitHub页面.

资源

subdomain dns cname github github-pages

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

如何将Entity Framework DbContext注入SharpRepository的ConfigurationBasedRepository

我真的想将SharpRepositoryNinject一起使用,但我不明白如何配置Ninject以在存储库之间共享Entity Framework DbContext.

我正在使用Entity Framework版本5和Ninject版本3.

目前我Ef5Repository在我的源代码中使用,但我想用它替换它ConfigurationBasedRepository.但我无法弄清楚如何将EF传递(或注入)DbContext到存储库.

示例(当前状态):

using SharpRepository.Repository;

public interface IProductRepository : IRepository<Product>
{
}

using SharpRepository.Ef5Repository;
using System.Data.Entity;

// TODO Tightly coupled to Ef5Repository.
public class ProductRepository : Ef5Repository<Product>, IProductRepository
{
    // TODO The DbContext has to be injected manually.
    public ProductRepository(DbContext context) : base(context)
    {
    }

    // [...]
}
Run Code Online (Sandbox Code Playgroud)

目标:

using SharpRepository.Repository;

public interface IProductRepository : IRepository<Product>
{
}

public class ProductRepository : ConfigurationBasedRepository<Product, int>, IProductRepository
{ …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ninject repository sharp-repository

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

如何在 Windows 上使用 Clang 静态分析器?

我目前正在尝试在 Windows v10.0.18363.720 操作系统上使用 Microsoft Visual C++ 编译器 (MSVC) v19.25.28610.4将Clang Static Analyzer v9.0.1集成到我的CMake v3.16.5 构建系统中。

一切都是为架构 x86_64 构建的。LLVM 和 Clang 是从源代码构建的。

在万维网 (WWW) 上阅读一些内容后,似乎有多种方法可以使用 Clang 静态分析器。遗憾的是,文档很糟糕,而且在 Windows 操作系统上似乎有一些特殊的怪癖(主要与 相关clang-cl),因此集成起来并不简单。IMO,专业程序员将其集成到 C++ 事实标准构建系统中的时间不应超过一小时。

调用 Clang 静态分析器似乎至少有五种可能性:

  1. scan-build 脚本。
    • 需要 Perl 运行时环境。
    • 能够通过一次调用分析多个文件。
    • 能够生成 HTML(比其他可能性更先进)、plist 或 sarif 输出文件。
    • 我的问题:没有检测到任何错误,总是打印scan-build: No bugs found.到 STDOUT。
  2. clang-check 可执行。
    • 需要一个 JSON 编译数据库文件compile_commands.json
    • 能够通过一次调用分析多个文件。
    • 应该能够生成 HTML 报告文件。通过--extra-arg论证。
    • 我的问题:无法使其工作(请参阅下面的第二个脚本)。
  3. clang/clang++可执行文件。
    • 能够通过一次调用分析一个文件。
    • 我的问题:基本上有效,但对我来说似乎是最糟糕的可能性(由于缺少构建信息)。
  4. c++-analyzer.bat …

c++ static-analysis clang visual-c++ clang-static-analyzer

9
推荐指数
0
解决办法
2575
查看次数

CMAKE_COMPILER_IS_GNUCXX和CMAKE_CXX_COMPILER_ID为空

我目前正在玩CMake并希望检测编译器和编译器版本.我目前的情况CMakeLists.txt如下:

cmake_minimum_required (VERSION 2.6)

set (PROJECT "a_tour_of_c++")
set (GNUCXX_MINIMUM_VERSION "4.8")
set (CXX_STANDARD "c++11")

message ("${CMAKE_CXX_COMPILER}")       # C:/dev/MinGW/bin/g++.exe
message ("${CMAKE_CXX_COMPILER_ID}")    # EMPTY
message ("${CMAKE_COMPILER_IS_GNUCXX}") # EMPTY

if (CMAKE_COMPILER_IS_GNUCXX)
  if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS GNUCXX_MINIMUM_VERSION)
    message (FATAL_ERROR "GCC version must be at least ${GNUCXX_MINIMUM_VERSION}!")
  endif()
else()
  message (FATAL_ERROR "Invalid compiler!")
endif()

set (BUILD_DIR build)
set (HEADER_DIR include)
set (SOURCE_DIR src)
set (MAIN_FILE ${SOURCE_DIR}/main.cc)

set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${CXX_STANDARD}")
project ($(PROJECT))
include_directories (${HEADER_DIR})
add_executable (${BUILD_DIR}/${PROJECT} ${MAIN_FILE})
Run Code Online (Sandbox Code Playgroud)

该文件很好,我可以用这个文件成功地清理,构建和运行我的cli应用程序(如果我注释掉else编译器检查的-branch).

问题是,这两个CMAKE_CXX_COMPILER_ID和 …

c++ gcc mingw g++ cmake

7
推荐指数
2
解决办法
9617
查看次数

处理biicode中未解决的与平台相关的依赖关系

我试图在测试库Catch中添加biicode支持,并且在与Objective-C和Microsoft Foundation Classes(MFC)相关的外部依赖项方面遇到了一些问题.

如果运行,则打印以下内容bii deps:

florianwolters/catch depends on:
       system:
          algorithm
          assert.h
          cmath
          cstddef
          cstdio
          cstring
          fstream
          iomanip
          iostream
          iterator
          limits
          map
          memory
          ostream
          set
          sstream
          stdbool.h
          stdexcept
          stdint.h
          stdlib.h
          streambuf
          string
          sys/time.h
          sys/types.h
          unistd.h
          vector
          windows.h
       unresolved:
          AfxWin.h
          Foundation/Foundation.h
          objc/runtime.h
          sys/sysctl.h
Run Code Online (Sandbox Code Playgroud)

这三个文件sys/sysctl.h,objc/runtime.hFoundation/Foundation.hObjective-C中的iOS开发有关.该文件AfxWin.hMicrosoft的C++库Microsoft Foundation Classes(MFC)的一部分.我创建的biicode块是florianwolters/catch(有关详细信息).

所以问题是:如何处理这种依赖?虽然我尚未检查许可证,但将Apple或Microsoft拥有的源代码(甚至可能是非法的)上传bicode是没有意义的.

简单地忽略这些未解决的问题是"适当的"或推荐的方式吗?

编辑2015-01-11:

我已经写了一篇博客文章的过程在这里.如果我有任何错误或者您有任何改进工作流程的建议,请告诉我.

dependencies header include biicode

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

使用协议缓冲区描述符对象从 .proto 文件中读取注释

我目前正在使用 Google Protocol Buffers重新审视一个项目。

在项目中,我想利用协议缓冲区的描述符反射功能。

官方文档说明.proto文件的注释可以读取:

  1. 使用函数DebugStringWithOptions(),在消息或描述符上调用。
  2. 使用函数GetSourceLocation(),在描述符上调用。

我无法检索评论,因此我认为我做错了什么,或者该功能尚未在 Protocol Buffers 中完全实现。

下面是一些代码片段:

google::protobuf::DebugStringOptions options;
options.include_comments = true;
std::cout << "google::protobuf::Descriptor::DebugStringWithOptions(): "
          << message.descriptor()->DebugStringWithOptions(options) << std::endl
          << std::endl;

const google::protobuf::FieldDescriptor* field_descriptor{
    message.descriptor()->field(1)};

// TODO(wolters): Why doesn't this work?
google::protobuf::SourceLocation* source_location{
    new google::protobuf::SourceLocation};
field_descriptor->GetSourceLocation(source_location);

// if (field_descriptor->GetSourceLocation(source_location)) {
std::cout << "start_line: " << source_location->leading_comments
          << std::endl;
std::cout << "end_line: " << source_location->leading_comments << std::endl;
std::cout << "start_column: " << source_location->start_column …
Run Code Online (Sandbox Code Playgroud)

c++ descriptor protocol-buffers c++11 proto3

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

通过Android API发送组合键(元键和键码)

我无法弄清楚如何使用Android发送元键(例如CTRL)和键码(例如用于RETURN)的组合(我使用API​​级别11 =版本3.0).

KeyEvent类的文档提到了诸如META_CTRL_ON之类的常量,并且还支持元键的键码常量(例如KEYCODE_CTRL_LEFT).

我正在使用Javascript Key Event Tester测试输入法编辑器(IME)生成的输出.顺便说一句,我的目标是开发一个软件键盘.

如果我理解正确的文件,这将足以执行以下代码发送CTRL键唯一:

this.sendDownUpKeyEvents(KeyEvent.KEYCODE_CTRL_RIGHT);
Run Code Online (Sandbox Code Playgroud)

但是当针对Javascript Key Event Tester(见上文)执行此操作时,没有任何反应.

因此,我需要了解如何仅发送元密钥以及将元密钥与另一个密钥组合发送.我也尝试了以下发送SHIFT + ENTER(一个具体的例子):

private void _sendShiftEnter() {
    this.sendDownKeyEvent(KeyEvent.KEYCODE_SHIFT_LEFT);
    final long eventTime = SystemClock.uptimeMillis();
    this.getCurrentInputConnection().sendKeyEvent(
        new KeyEvent(
            eventTime, // The time (in uptimeMillis()) at which this key code originally went down.
            eventTime, // The time (in uptimeMillis()) at which this event happened.
            KeyEvent.ACTION_DOWN, // Action code: either ACTION_DOWN, ACTION_UP, or ACTION_MULTIPLE.
            KeyEvent.KEYCODE_ENTER, // The key code.
            0, …
Run Code Online (Sandbox Code Playgroud)

android key-events keyevent android-input-method

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

Biicode中的#include语句映射(biicode.conf)

我想为依赖管理器Biicode创建一个块.我不想触及现有的源代码,因此我必须将现有Bii块的包含路径映射到源代码中使用的路径.

我在现有代码中使用以下内容:

#include "gtest/gtest.h"
#include "fw/core/uncopyable_mixin.h"
Run Code Online (Sandbox Code Playgroud)

使用默认设置,Bii需要以下路径:

#include "google/gtest/include/gtest/gtest.h"
#include "florianwolters/include/fw/core/uncopyable_mixin.h"
Run Code Online (Sandbox Code Playgroud)

如果我更换包含,一切都按预期工作.但正如我已经说过的那样,我不想要这样丑陋的包含路径,而是使用常识(如Boost和其他库所做的那样).

因此我需要映射路径.我已经阅读biicode.conf并偶然发现了这一[includes]部分.

我尝试过以下方法:

[requirements]
    google/gtest: 9
    florianwolters/uncopyable-mixin: 0

[parent]
    florianwolters/singleton: -1

[paths]
    include

[dependencies]

[mains]

[hooks]

[includes]
    gtest/gtest.h: google/gtest/include/gtest
    fw/core/uncopyable_mixin.h: florianwolters/uncopyable-mixin/include/fw/core

[data]
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

INFO: Processing changes...
WARN: Removing unused reference to "florianwolters/uncopyable-mixin: 0" from florianwolters/singleton "requirements"
WARN: Removing unused reference to "google/gtest: 9" from florianwolters/singleton "requirements"
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:我如何配置映射以使其与现有的#include语句一起使用?这必须工作,否则它是一个杀手标准......

c++ dependencies include dependency-management biicode

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

Protocol Buffers(protobuf)v3.0.0-alpha-2中的可选字段和约束

我目前正在使用Google Protocol Buffers的 v3.0.0-alpha-2 .

据我所知,v3删除了required关键字,extensions 字段的关键字和默认值,以简化原型语言.

明白的是optionalproto3中关键字的含义.

例:

syntax = "proto3";

package fw.example;

message ExampleMessage {
  optional string optional_string = 1;
  string normal_string = 2;
}
Run Code Online (Sandbox Code Playgroud)

问:是什么区别optional_stringnormal_string 除了名称和标记?

我已经阅读了以下资源(它们似乎是protobuf v3的唯一公开版本):

但他们甚至没有提到optional关键字.

  • optional在proto3过时,因为现场始终是可选的?
  • 如果不存在,如何使用proto3强制执行必填字段required

似乎在proto3中,人们不能再将未设置的字段和客户端设置的字段区分为(隐式)默认值.

最好的做法是将每个proto3消息包装在特定于语言的类中吗?我正在使用C++,我需要确保设置特定的字段.与proto2相比,现在似乎必须在语言特定的源代码中手动完成验证.

有人可以启发我,对proto3消息应用约束但允许方案演变的最佳方法是什么?目前我认为必须围绕proto3消息编写新的API,以便客户端不直接处理proto3生成的代码,而是使用自定义API代码.那是对的吗?

也许有人可以给我一个具体的例子来讨论.

我很困惑,因为v3的发行说明中说明了以下内容:

我们建议新的Protocol Buffers用户使用proto3.但是,由于API不兼容,我们通常不建议现有用户从proto3迁移proto2,并且我们将继续支持proto2很长一段时间.

如果proto3是要走的路,为什么事情变得复杂?在我看来,我现在需要编写比proto2更多的代码.

c++ serialization protocol-buffers

6
推荐指数
2
解决办法
6946
查看次数

如何整合cakey与CMake(<LANG> _CLANG_TIDY)和MSVC?

如何传递clang旗帜,例如-fms-compatibility-version使用<LANG>_CLANG_TIDYCMake属性?在CLI上这很容易:

clang-tidy main.cpp -- -fms-compatibility-version=19.10
Run Code Online (Sandbox Code Playgroud)

但是使用CMake,这不能按预期工作:

-DCMAKE_CXX_CLANG_TIDY="clang-tidy;-checks=-*,readability-*;--;-fms-compatibility-version=19.10"
Run Code Online (Sandbox Code Playgroud)

该标志是clang使用现代版本的MSVC 所必需的.

如果这是不可能的; 有没有其他方法来集成CMake + MSVC + clang-tidy(除了创建自定义构建目标)?

cmake clang visual-c++ clang-tidy

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