小编Mar*_*sen的帖子

如何将CMake输出变为'bin'目录?

我目前正在构建一个带有插件结构的项目.我正在使用CMake编译项目.插件在不同的目录中编译.我的问题是CMake在源的目录结构中编译并保存二进制文件和插件,动态库.如何使CMake将文件保存在类似./bin目录的文件中?

c++ plugins cmake

161
推荐指数
5
解决办法
16万
查看次数

如何编译GCC生成的asm?

我正在玩一些asm代码,有些事情困扰着我.

我编译这个:

#include <stdio.h>

int main(int argc, char** argv){
  printf("Hello World\n");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

gcc file.c -S -o file.S这个生成一个很好的asm代码:

    .cstring
LC0:
    .ascii "Hello World\0"
    .text
.globl _main
_main:
LFB3:
    pushq   %rbp
LCFI0:
    movq    %rsp, %rbp
LCFI1:
    subq    $16, %rsp
LCFI2:
    movl    %edi, -4(%rbp)
    movq    %rsi, -16(%rbp)
    leaq    LC0(%rip), %rdi
    call    _puts
    movl    $0, %eax
    leave
    ret
LFE3:
    .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
    .set L$set$0,LECIE1-LSCIE1
    .long L$set$0
LSCIE1:
    .long   0x0
    .byte   0x1
    .ascii "zR\0"
    .byte   0x1
    .byte   0x78
    .byte   0x10
    .byte …
Run Code Online (Sandbox Code Playgroud)

c compiler-construction assembly gcc

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

Qt的替代品

我一直在网上搜索,以找到一个跨平台(Mac,Pc,甚至可能是Linux)框架.

我知道qt是用c ++做这种事情的工业标准.

让我错误的方法是,只有一个选项(如果你计算制作自己的框架,则有两个选项).制作商业跨平台应用程序的一个选择,这不可能是真的吗?

还有Qt的方式,使用预编译器和弄乱语言slots并且sockets是一团糟,就这么简单.如果你没有使用qmake,那么在ide中进行开发就会变得一团糟,如果你没有使用qmake,那么编译会很麻烦.总而言之,这意味着qt不能很好地与其他人一起使用.

有人能指出我其他商业上使用的跨平台gui框架的方向吗?

qt cross-platform

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

cmake和netbeans可以玩得好吗?

我正在做一个大项目,有些人可能会说很棒.

该项目正在使用cmake和netbeans在c ++中开发.一切都运行正常,除了每次我对项目进行更新,添加或删除源文件这一事实时,netbeans运行cmake并将新项目添加到"项目"列表中.这有点烦人,因为我倾向于这么做.

有没有一种聪明的方法可以确保每次添加子目录时netbeans都不会创建新项目?

c++ netbeans cmake

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

字符串分析

给定一系列操作:

A*B*A*B*A*A*B*A*B

有没有办法获得最佳细分以启用子串的重用.

制造

a*b*a*b*a*a*b*a*b => c*a*c,其中c = a*b*a*b

然后看到了

a*b*a*b => d*d,其中d = a*b

总而言之,将8个初始操作减少到这里描述的4个?

(c =(d = a*b)*d)*a*c

当然,目标是尽量减少操作次数

我正在考虑各种后缀.

我对线性时间启发式或解决方案特别感兴趣.'*'操作实际上是矩阵乘法.

string algorithm complexity-theory suffix-tree graph-algorithm

33
推荐指数
5
解决办法
1024
查看次数

把星放在哪里用C和C++指针表示法

可能重复:
在C/C++中声明指针变量的正确方法

一段时间以下一直困扰着我,我应该把星星放在我的指针表示法中.

int *var; // 1
Run Code Online (Sandbox Code Playgroud)

int* var; // 2
Run Code Online (Sandbox Code Playgroud)

显然做同样的事情,两个符号都是正确的,但我发现我看的大多数文献和代码都使用第1种符号.

使用第二种表示法,用空格分隔类型和变量名称,而不是混合类型和变量标记,这不是更"正确"吗?

c c++

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

向量的良好散列函数

我有一些整数向量,我想在c ++ 11中的unordered_map中高效存储我的问题是:

如何最好地存储这些并优化.find查询?

我想出了以下的哈希:

class uint32_vector_hasher {
public:
  std::size_t operator()(std::vector<uint32_t> const& vec) const {
    std::size_t ret = 0;
    for(auto& i : vec) {
      ret ^= std::hash<uint32_t>()(i);
    }
    return ret;
  }
};
Run Code Online (Sandbox Code Playgroud)

然后将对象存储在unordered_mapI中然而有几个问题

  1. 哈希计算的频率是多少,只有一个,一些随机数或一些?
  2. 是否有意义创建一个包含==和哈希函数的包装器对象来记忆哈希并避免多次计算?

在进行性能分析时,我注意到我的cpu时间相当大,花费在无序地图上进行查找,这不是最佳的:(

c++ hash c++11

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

合并接口,无需合并

我在想,C++或Java是否有办法做这样的事情

Interface IF1{
    ....
};

Interface IF2{
    ....
};


function f(Object o : Implements IF1, IF2){
    ...
}
Run Code Online (Sandbox Code Playgroud)

意味着允许您需要实现接口的类型系统.

c++ java type-systems

16
推荐指数
2
解决办法
1833
查看次数

如何使表格可滚动

有没有人知道一种使用html和css使表格的主体可滚动的香草方式?

明显的解决方案

tbody {
    height: 200px;
    overflow-y: scroll;
}
Run Code Online (Sandbox Code Playgroud)

不起作用.

这不是表的明显用法吗?

难道我做错了什么?

html css css-tables

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

在模板中使用朋友

我正在编写一个小类,该类基本上是C类的工厂,但我希望其他类能够访问某些方法.

template<class C>
class CFactory {
public:   
   friend class C;
};
Run Code Online (Sandbox Code Playgroud)

这应该使CFact的字段可用于类C,但编译器认为不然.

我在mac上使用gcc得到以下两个错误.

错误:在'class'之后使用模板类型参数'C'

错误:friend声明没有命名类或函数

任何人都可以告诉我我做错了什么以及如何得到正确的?

c++ gcc templates

12
推荐指数
2
解决办法
1749
查看次数