小编Cor*_*ein的帖子

为什么链接器找不到静态库中存在的符号?

这是一个相当简单的应用程序的设置,我无法正确链接.基本上是单个源文件main.cpp,带有静态库的目录libbreakpad_client.a,以及库中的标头breakpad.

$ ls .
main.cpp libs breakpad
$ ls libs
libbreakpad_client.a
Run Code Online (Sandbox Code Playgroud)

以下是Google Breakpad文档中main.cpp逐字记录的来源.

#include "client/linux/handler/exception_handler.h"

void crash()
{
  volatile int* a = (int*)(NULL);
  *a = 1;
}

static bool dumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, bool succeeded)
{
  printf("Dump path: %s\n", descriptor.path());
  return succeeded;
}

int main()
{
    google_breakpad::MinidumpDescriptor descriptor("/tmp");
    google_breakpad::ExceptionHandler eh(descriptor, 0, dumpCallback, 0, true, -1);
    crash();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译它时,链接器抱怨它无法找到ExceptionHandler构造函数和析构函数.

$ g++ -Ibreakpad/src -lbreakpad_client -Llibs -o main main.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ linker static-libraries

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

将变量打印为多行字符串的一部分?

val name = "Cory"
"""
  |Hi! My name is " + name + " how are you?
""".stripMargin
Run Code Online (Sandbox Code Playgroud)

该部分+ name +不会被解释为代码,而是作为文本.如何在多行字符串中打印变量的值?

scala

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

列出通过 bindkey 进行的当前现有或应用的键绑定

我的 ZSH 在某个时候被告知绑定Delete到一些复杂的函数、键序列或宏,我想从我的配置中删除这个绑定。为了更好地找到设置此绑定的位置,我想看看当我点击Delete.

如何查看 Zsh 环境中所有当前存在的键绑定的列表?

zsh

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

在REPL中除以零时会删除28个帧?

scala> 5 / 0
java.lang.ArithmeticException: / by zero
  ... 28 elided
Run Code Online (Sandbox Code Playgroud)

一个简单的算术表达式省略了二十八个帧?这些框架是什么?为什么Scala需要那么多框架来进行安全划分?为什么首先要消除它们?

scala divide-by-zero read-eval-print-loop

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

将 case 对象文字声明为其父类型?

我有一个单例Banana类,并希望避免对它.type的所有用法进行后缀处理,所以我这样定义它:

sealed trait Banana
case object Banana extends Banana
Run Code Online (Sandbox Code Playgroud)

现在我可以拥有干净的方法签名,例如 def peel(foo: String): Banana

但是有一个小烦恼 - 我很难在希望它实际上是父类型的同时引用case 对象 Banana。观察:

scala> sealed trait Banana; case object Banana extends Banana
trait Banana
object Banana

scala> Banana
val res0: Banana.type = Banana

scala> val banana: Banana = Banana
val banana: Banana = Banana
Run Code Online (Sandbox Code Playgroud)

现在在上面,res0是 type Banana.type,这不是我要找的类型!banana另一方面,确实是我想要的类型。是否可以在不先将其分配给值的情况下获得后一种类型的香蕉文字

显然Banana.asInstanceOf[Banana]有效,但绕过了整个讨厌的“编译时安全”的事情。

scala

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

你如何在一个圆形的int数组上执行左移?

是否存在在圆形的int数组上执行左移的现有方法?

具体来说,给定一个包含4个项目{1,2,3,4}且移位量为2 的数组,我想要一个方法将前两个字母移动到数组的后面,使它看起来如下:{3,4,1,2}.

这个算法可以将圆形数组移动一个吗?

algShiftByOne(Array)
{
  temp=array[0];
  i=1
  while(i < Array.length - 1) // Loop from 1 up to array.length == last index
  {
    // If there is no exception i assume it copies value from
    // initial array starting from 1 up to array.length
    Array[i - 1] = Array[i];
    i++;
  }
 Array[Array.length]=temp;
}
Run Code Online (Sandbox Code Playgroud)

java methods int

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

是否可以将宽度设置为vim文档,以便自动插入换行符?

我想要一些我在vim中键入的文本,在键入了这么多字符之后自动进入一个新行,而不是让我输入无限长度的行.这可能吗?

vim

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

考虑程序输出

考虑一下该计划

#include<stdio.h>
int main()
{
  int  x = 33;
  float y = 5;

  printf("%d %d",y,x);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

0 1075052544
Run Code Online (Sandbox Code Playgroud)

我可以理解y作为UB的0的价值,但yx即将到来?是一个想法样本.

c floating-point printf undefined-behavior

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

可以通过const函数实现多态吗?

可以通过const函数实现多态吗?我的意思是一个函数 a() 和另一个函数 a()const 表现多态吗?

void func(int a){}
void func(int a)const {}
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism

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

为git log这样的双字命令创建别名?

有时我有两个单词命令,git log或者apt-get install我想添加一个默认参数.例如,大多数时候我想将--abbrev-commit参数添加到my git log,并将-y参数添加到apt-get install.

git log --abbrev-commit
apt-get install --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法创建一个涉及两个单词命令的别名:

$ alias 'git log'='git log --abbrev-commit'
bash: alias: `git log': invalid alias name
 $ alias git log='git log --abbrev-commit'
bash: alias: git: not found
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

bash alias

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