小编ary*_*naq的帖子

QtCreator,子项目链接器错误

我有一个相当大的应用程序,我需要构建/维护所以我决定使用googletest,为方便起见,想要将测试和应用程序代码构建为子项目.我创建了一个具有以下结构的超级项目:

SuperProject
- SuperProject.pro
- defaults.pri
- Application
  -- Application.pro
  -- Sources
  -- main.cpp
  -- Headers
- Tests
  -- Tests.pro
  -- main.cpp
  -- Sources
  -- Headers
Run Code Online (Sandbox Code Playgroud)

superproject.pro

TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += \
    Application \
    Tests \
OTHER_FILES += \
    defaults.pri
Run Code Online (Sandbox Code Playgroud)

defaults.pri

INCLUDEPATH += $$PWD/Application
Run Code Online (Sandbox Code Playgroud)

Tests.pro

include(gtest_dependency.pri)
include(../defaults.pri)

TEMPLATE = app
QT += core
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG += thread

HEADERS +=     tst_redoundo.h
SOURCES +=     main.cpp
Run Code Online (Sandbox Code Playgroud)

Application.pro …

c++ qt

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

Java泛型集合,无法将列表添加到列表中

为什么如下

public class ListBox {
    private Random random = new Random();
    private List<? extends Collection<Object>> box;

public ListBox() {
    box = new ArrayList<>();
}

public void addTwoForks() {
    int sizeOne = random.nextInt(1000);
    int sizeTwo = random.nextInt(1000);

    ArrayList<Object> one = new ArrayList<>(sizeOne);
    ArrayList<Object> two = new ArrayList<>(sizeTwo);

    box.add(one);
    box.add(two);
}

public static void main(String[] args) {
    new ListBox().addTwoForks();
}
}
Run Code Online (Sandbox Code Playgroud)

不行?为了学习的目的只是用泛型来玩,我希望我能够在那里插入任何扩展Collection的东西,但是我得到了这个错误:

The method add(capture#2-of ? extends Collection<Object>) in the type List<capture#2-of ? extends Collection<Object>> is not applicable for the arguments (ArrayList<Object>) …
Run Code Online (Sandbox Code Playgroud)

java generics collections

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

Eclipse Juno中没有Android DDMS视图

我正在努力移植我为android制作的游戏(之前从未在android上编程),并希望使用android DDMS进行性能分析,如使用DDMS所示但是eclipse中没有该视图(在Show View中没有DDMS - >其他)甚至虽然SDK管理器报告它已经安装,我可以在eclipse上运行usb调试模式就好了.

如何在Juno中设置上图中显示的调试视图?

eclipse android

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

如何检查两个字符串列表?

参加OOP Java课程,因为我对这门语言完全陌生,而且还没有意识到它提供的许多工具,我发现自己在黑暗中摸索着解决简单的问题,我可以对这些问题进行硬编码,但我觉得这是一种简单易行的方法java.util.

假设我有一个字符串列表

String[] stringOne = {"a","b","c", "potato"};
String[] stringTwo = {"potato", "13"};
Run Code Online (Sandbox Code Playgroud)

如何查看任何给定项目stringTwo发生的次数stringOne?或相反亦然.每当我遇到这个问题时,我宁愿不进行双循环(或者做一个双循环方法).

现在我逃避使用Collections.frequency()并且只循环一次,但有更简单的方法吗?谢谢.

java string compare

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

Visual Studio,从命令行运行 cmakesettings.json

Visual Studio 支持CMakeSettings.json在打开 CMake 项目时创建文件以保留 cmake 配置,如此处所述

这在 IDE 本身内工作得很好,但是如果我想自动化我的构建,我不能重用同一个CMakeSettings.json文件,我必须解析它,然后将值发送到 CMake-DFOO=parsed_value或保留两个单独的构建配置(冒错误的风险)其中不同步)。

在调用 CMake 之前,IDE 必须在内部进行这种解析,所以有人知道这个构建步骤是否可以在 IDE 外部访问吗?

c++ cmake visual-studio-2017

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

Eclipse颜色主题和OS L&F

因此,我已经尝试了几个小时为Eclipse Juno设置一个黑暗的主题,你脸上的致盲白色非常累人,并在短时间内拉伤眼睛.我设法找到了一个让日食变暗的主题,但仍然存在一些问题.

见图

  1. 我无法控制菜单栏的背景颜色.是否有可能改变它?我尝试了Win7"窗口颜色和外观"中的所有内容,但除了能够更改窗口标题的字体大小外,颜色不会改变.
  2. 我无法控制Eclipse各种视图面板中用于标题的fontsize,比如projectexplorer或编辑器.
  3. 无法控制滚动条颜色.

这些都是小问题,但会使主题的最终结果变得更好.是否可以对Win7上的任何问题做任何事情?

在此输入图像描述

eclipse windows

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

在派生的析构函数中防止vtable数据竞争

假设我有以下代码

#include <thread>
#include <iostream>
#include <atomic>

struct FooBase {
    void start(){
        run_condition_ = true;
        t_ = std::thread([this](){
            thread_handler();
        });
    }

    virtual ~FooBase(){
        run_condition_ = false;
        if(t_.joinable())
            t_.join();
    }

protected:
    virtual void thread_handler() = 0;
    std::atomic_bool run_condition_{false};
private:
    std::thread t_;
};


struct Foo : FooBase {
    void thread_handler() override {
        while(run_condition_){
            std::cout << "Foo derived thread.." << std::endl;
        }
    }
};


int main(){
    Foo f;
    f.start();

    getchar();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我认为因为派生类的析构函数在vtable查找发生在基类Foo之前被调用,如果线程在完成析构函数时尚未加入(仍在运行).由于是纯粹的虚拟我基本上保证了sigabort.FooBasethread_handlerFooFooBase::thread_handler

我该如何防范这个?我没有thread_handler像纯虚拟那样破解我的方式 …

c++ thread-safety vtable c++11

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

无需复制构造函数的简单编译时检查

制作无副本类型的一个众所周知的习惯是创建一个基类

struct NoCopy {
   NoCopy(){}
   NoCopy(const NoCopy&) = delete;
   NoCopy& operator=(const NoCopy&) = delete;  
};
Run Code Online (Sandbox Code Playgroud)

并且源于此,就像这样

struct Foo : NoCopy {
    Foo(){}
};
Run Code Online (Sandbox Code Playgroud)

这将导致以下无法编译

Foo f;
Foo f2 = f;
Run Code Online (Sandbox Code Playgroud)

但是我该如何执行呢?任何派生类都可以执行以下操作

struct Foo2 : NoCopy {
    Foo2(){}
    Foo2(const Foo2&){}
};
Run Code Online (Sandbox Code Playgroud)

这是完全合法但没有意义,我现在有一个既可复制又不可复制的类型(通过它的基类).

我该如何避免这种情况?

c++ c++11

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

LetsEncrypt SSL 证书可以用于现有主机名吗?

我正在尝试找出如何在不中断用户/客户的情况下将网站/服务器从 digitalocean Droplet 迁移到 Azure (AKS)。

digitalocean 配置具有由 letencrypt (通过 serverpilot 管理)为主机名提供的 SSL 证书foo.example.com

在新配置中:

  • ClusterIssuer已安装 ( cert-manager.io/v1)
  • 自动为入口资源颁发 SSL 证书工作正常

我不确定的是,当 digitalocean Droplet 中已经向同一主机颁发了证书时,我是否能够(间接通过 AKSClusterIssuer中)为现有主机名 ( ) 请求新证书?foo.example.com

我的直觉告诉我不,因为要进行完全的敌意接管,所需要做的就是掌握我们的 DNS 配置并为域设置证书......我正在尝试找出一种方法来测试/验证这一点,但对此的任何智慧都非常感激。

azure ssl-certificate lets-encrypt azure-aks

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

Arrays.asList返回类型不匹配的混淆

为什么以下不返回整数列表?

int[] ints = new int[] { 1, 2, 3, 4, 5 };
List<Integer> intsList = Arrays.asList(ints); //compilation error
Run Code Online (Sandbox Code Playgroud)

而是一个列表 int[]

虽然这个

String[] strings = new String[] { "Hello", "World" };
List<String> stringsList = Arrays.asList(strings);
Run Code Online (Sandbox Code Playgroud)

返回一个列表String.我猜它失败了,因为它是一个原始数组,但为什么呢?我如何实际返回列表int.

java collections

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