小编Hel*_*hka的帖子

cmake - 获取使用过的命令行标志"-D"

我最近将一些项目从autotools切换到了cmake.

我喜欢在autotools上的一个常见的事情是 - 如果我进入src构建目录.有config.log/config.status - 其中./configure --params列出了命令的顶部- 因此很容易重新运行以前使用过的命令行标志.

(比如在编译一些东西之后 - 我想添加另一个--enable-this- 所以从config.log/status复制和粘贴 - 然后重新运行./configure --old-params --enable-this)

在cmake中 - 我有一堆 -D标志 - 我怎样才能找到像config.log/status一样的使用命令行 - 用cmake项目?

我知道有CMakeCache ... - 但很难提取使用过的标志

编辑:

我提出了以下解决方案:

#save commandline to rebuild this :)
set(USED_CMD_LINE "cmake ")
set(MY_CMAKE_FLAGS CMAKE_BUILD_TYPE CMAKE_INSTALL_PREFIX ENABLE_SSL ENABLE_LUA ENABLE_SSH ENABLE_SNMP MYSQL_USER MYSQL_PASS MYSQL_HOST MYSQL_DB FULL_FEATURES USE_COVERAGE)
FOREACH(cmd_line_loop IN ITEMS ${MY_CMAKE_FLAGS})
    if(${cmd_line_loop})
        STRING(CONCAT USED_CMD_LINE ${USED_CMD_LINE} "-D"  ${cmd_line_loop} "=" ${${cmd_line_loop}} " ")
    endif()
ENDFOREACH(cmd_line_loop)
STRING(CONCAT USED_CMD_LINE ${USED_CMD_LINE} " .. …
Run Code Online (Sandbox Code Playgroud)

cmake

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

cmake - osx/mac - openssl brew

我正在使用以下cmake命令

# Search OpenSSL
find_package(PkgConfig REQUIRED)
pkg_search_module(OPENSSL REQUIRED openssl)

if( OPENSSL_FOUND )

    include_directories(${OPENSSL_INCLUDE_DIRS})
    message(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
else()
    # Error; with REQUIRED, pkg_search_module() will throw an error by it's own
endif()
Run Code Online (Sandbox Code Playgroud)

它适用于Linux和Mac - 但在Mac上它使用osx发布的libssl - 它会抛出很多弃用警告,例如 'SSL_library_init' is deprecated: first deprecated in OS X 10.7"

使用brew我已经安装了一个更新的 - openssl -offical - libssl - 我怎么能告诉pkg_search_modulecmake找到并使用brew版本?

问候

macos homebrew openssl cmake

9
推荐指数
2
解决办法
5755
查看次数

MongoDB 最佳实践设置

我需要一个重读的故障保存 HA mongoDB 主机,它可以容纳一些 mio。大约 20 个集合的文档。

我有 2 台物理服务器。使用较少的硬件进行 HA mongoDB 设置的最佳实践是什么?!

到目前为止我发现了什么:

  • ) 副本集:在副本集中运行 2 个节点,似乎不错,但我不确定,这如何平衡读取(或写入)- 扩展:添加更多副本是否可行?(直到12?)

  • ) Sharded Replica 如何仅使用 2 个服务器正确执行此操作?(如何扩展?,添加一对服务器(容器) - 执行另一个副本集并将其添加到 shardconfig?)

现在我使用 docker 在 2 台 docker 机器上运行 sharded-replica-cluster,每台机器都做一个副本集、几个 CFG 服务器和一个路由器。

在这种情况下使用 docker 来平衡 2 台主机的缺点是什么。

问候赫尔穆特

mongodb docker

6
推荐指数
0
解决办法
463
查看次数

Symfony AutoWire多个服务同类

我正在将大型应用程序升级到4.2

并且$this->get(".....") 不推荐使用控制器内部,而应该使用AutoWire.

我遇到的问题是我有2个服务,实际上是来自同一个类(只是不同的构造函数args).

services.yml

services:
  service.a:
    class: Namespace\MyClass
    arguments: [ "argument1" ]

  service.b:
    class: Namespace\MyClass
    arguments: [ "argument2" ]
Run Code Online (Sandbox Code Playgroud)

控制器:

public function demoAction() {
  $serviceA = $this->get("service.a");
  $serviceB = $this->get("service.b");
}
Run Code Online (Sandbox Code Playgroud)

以及有问题的结果:

public function demoAction(MyClass $serviceA, MyClass $serviceB) {
}
Run Code Online (Sandbox Code Playgroud)

我们可以使用别名来服务定义,例如:

MyClass: '@service.a'
Run Code Online (Sandbox Code Playgroud)

但我不能使用虚拟/假类(没有现有的):

MyPseudClass: '@service.b'
Run Code Online (Sandbox Code Playgroud)

你如何在autowire模式下处理这样的案例?

我可以创建"伪"类,从基础扩展,只是为了获得不同的类名,但这感觉很奇怪.

autowired symfony symfony4

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

ansible playbook角色变量

相当新的ansible.具有以下角色,例如:my-role- 我无法覆盖剧本中的默认变量

以下文件:

my-role/tasks/main.yml
my-role/defaults/main.yml
sample-playbook.yml
Run Code Online (Sandbox Code Playgroud)

我的角色/任务/ main.yml

- name: "Add Test User"
  user: name={{ my_config_test_user }} comment="{{ my_config_test_user }}" group={{ my_config_test_user }}
Run Code Online (Sandbox Code Playgroud)

我的角色/默认/ main.yml

my_config_test_user: "test"
Run Code Online (Sandbox Code Playgroud)

剧本:

- name: TestCase
  hosts: all
  remote_user: root
  vars:
    my_config_test_user: "override"
  roles:
    - my-role
Run Code Online (Sandbox Code Playgroud)

在任务中my_config_test_user停留的价值test而不是我预期的结果override

任何提示?

问候

ansible ansible-playbook

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

清漆列出缓存中的所有 URL

我正在寻找一种方法来遍历整个缓存并获取当前在存储中的对象 URL 列表。

有没有我遗漏的清漆命令。或者有没有人有一个很好的起点来迭代 vmod 中的对象?

问候

varnish varnish-vcl varnish-4

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

UICollectionview insertItemsAtIndexPaths 停止滚动

我有一个无限加载的集合视图——添加新项目: insertItemsAtIndexPaths

但是每次我调用insertItemsAtIndexPaths滚动停止时 insertItemsAtIndexPaths,它都必须在主线程上运行

有什么办法可以防止insertItemsAtIndexPaths停止滚动?(我的意思是快速滚动)

问候

cocoa-touch ios uicollectionview

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