小编Yuk*_*uki的帖子

与MinGW的静态和动态/共享链接

我想从一个简单的链接用法开始解释我的问题.让我们假设有一个库z可以编译为共享库libz.dll(D:/libs/z/shared/libz.dll)或静态库libz.a(D:/ libs/z/static/libz.一个).

让我想链接它,然后我这样做:

gcc -o main.exe main.o -LD:/libs/z/static -lz
Run Code Online (Sandbox Code Playgroud)

根据这个文档,gcc将搜索libz.a,即

归档文件,其成员是目标文件

我也可以做以下事情:

gcc -o main.exe main.o -LD:/libs/z/shared -lz
Run Code Online (Sandbox Code Playgroud)

在上面的文档中没有提到-l标志将搜索lib<name>.so.

如果我libz.a和libz.dll将在同一目录中会发生什么?图书馆如何与计划挂钩?为什么我需要标志-Wl,-Bstatic,-Wl,-Bdynamic如果-l搜索共享和静态库?

如果我编译共享库分发,为什么有些开发人员为.a文件提供相同模块的.dll文件?

例如,Qt在bin目录中提供.dll文件,其中包含lib目录中的.a文件.它是同一个库,但分别构建为共享和静态?或.a文件是某种虚拟库,提供与共享库的链接,其中有真正的库实现?

另一个例子是Windows上的OpenGL库.为什么每个编译器都必须在MingW中提供类似libopengl32.a的静态OpenGL库?

什么是.dll.a和.la扩展名用于的文件?

PS这里有很多问题,但我认为每个问题都取决于前一个问题,没有必要将它们分成几个问题.

c++ gcc mingw dynamic-linking static-linking

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

Emacs:无法验证签名archive-contents.sig

最近尝试更新emacs软件包并得到了这个。

Failed to verify signature archive-contents.sig:
No public key for 066DAFCB81E42C40 created at 2019-10-02T10:10:02+0100 using RSA
Command output:
gpg: Signature made Wed 02 Oct 2019 10:10:02 AM BST
gpg:                using RSA key C433554766D3DDC64221BFAA066DAFCB81E42C40
gpg: Can't check signature: No public key
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

emacs gnupg

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

`gmtime()`会在闰秒时报告秒为60?

我有一台运行的服务器TZ=UTC,我有这样的代码:

time_t t = time(NULL);
struct tm tm;
gmtime_r(&t, &tm);
Run Code Online (Sandbox Code Playgroud)

问题是tm.tm_sec == 60服务器何时处于闰秒之内?

例如,如果我在以下时间范围内:

1998-12-31T23:59:60.00 - 915 148 800.00
1998-12-31T23:59:60.25 - 915 148 800.25
1998-12-31T23:59:60.50 - 915 148 800.50
1998-12-31T23:59:60.75 - 915 148 800.75
1999-01-01T00:00:00.00 - 915 148 800.00
Run Code Online (Sandbox Code Playgroud)

gmtime()返回tm == 1998-12-31T23:59:60time_t = 915148800,一旦出了闰秒,回归tm == 1999-01-01T00:00:00为同time_t

c time posix utc unix-timestamp

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

C++块范围外部声明链接,混淆C++标准解释

标准N3242(C++ 11草案)和N3797(C++ 14草案)都有相同的段落.

§3.5计划和联系[basic.link]

6

在块作用域中声明的函数的名称和由块作用域extern声明声明的变量的名称具有链接.如果存在具有相同名称和类型的链接的实体的可见声明,忽略在最内部封闭命名空间范围之外声明的实体,则块范围声明声明该实体并接收先前声明的链接.如果存在多个这样的匹配实体,则该程序是不正确的.否则,如果未找到匹配的实体,则块范围实体接收外部链接.[例如:

 static void f();
 static int i = 0; // #1
 void g() {
     extern void f(); // internal linkage
     int i; // #2 i has no linkage
     {
         extern void f(); // internal linkage
         extern int i; // #3 external linkage
     }
 }
Run Code Online (Sandbox Code Playgroud)

在这个程序中有三个名为i的对象.具有内部链接的对象由全局范围内的声明引入(第1行),具有自动存储持续时间的对象并且没有由第2行上的声明引入的链接,以及具有静态存储持续时间和由声明引入的外部链接的对象在第3行. - 结束例子]

我觉得i对象示例有问题,它不支持之前段落中的内容,对吧?在我看来,它必须是两个i对象,一个具有内部链接(#1和#3),另一个没有链接(#2).我对么?这是标准中的错误,这个例子是错的吗?

相比之下,标准N4659(C++ 17草案)在我看来更正确.

§6.5计划和联系[basic.link]

6

在块作用域中声明的函数的名称和由块作用域extern声明声明的变量的名称具有链接.如果存在具有相同名称和类型的链接的实体的可见声明,忽略在最内部封闭命名空间范围之外声明的实体,则块范围声明声明该实体并接收先前声明的链接.如果存在多个这样的匹配实体,则该程序是不正确的.否则,如果未找到匹配的实体,则块范围实体接收外部链接.如果在翻译单位内,同一实体被宣布具有内部和外部联系,则该程序是不正确的.[例如:

static void f();
static int i = 0; // #1
void g() …
Run Code Online (Sandbox Code Playgroud)

c++ clang language-lawyer c++14 c++17

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

material ui Tooltip 距锚点的距离

是否有一种清晰/简单的方法来控制工具提示与锚元素的距离?默认定位不适合我的情况,工具提示太靠近锚点。我已经检查了它的所有道具,但PopperProps没有可见的选项可以做到这一点。

tooltip reactjs material-ui

7
推荐指数
3
解决办法
4701
查看次数

C ++ gRPC线程号配置

gRPC服务器/客户端是否具有用于连接的线程池的任何概念?可以重用线程,预分配线程,达到线程限制的队列请求等。

如果没有,它是如何工作的,是否只是在需要时分配/销毁线程,而没有任何限制和/或重用?如果是,是否可以进行配置?

c++ grpc

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

无法更改 react-select 元素的宽度

无论我做什么,我都无法更改选择的宽度。它总是保持不变,一些默认宽度(比如大约 75 像素)。

const Container = styled('div')`
  width: 100%;
  height: 100%;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
`;
const selectStyles = {
  valueContainer: base => ({
    width: 300,
  }),
  group: base => ({
    width: 300,
  }),
  container: base => ({
    width: 300,
  }),
  control: base => ({
    width: 300,
  }),
  singleValue: base => ({
    width: 300,
  }),
  input: base => ({
    width: 300,
    color: theme.palette.text.primary,
    '& input': {
      font: 'inherit',
    },
  }),
}

return (
  <SplitPane split='horizontal' defaultSize={260}>
    <Paper …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-select

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

查找之前 pod 的日志

我们遇到了系统中断,服务没有响应,我重新启动了服务kubectl rollout restart sts myservice,它工作了。但是,我想查看日志以找出问题的原因。当我尝试时kubect logs --previous myservice-0,它显示“未找到 pod“myservice-0”中先前终止的容器“mycontainer””。有没有办法找到重启前的日志?我尝试查看死掉的 docker 容器 ( docker ps -a),有 6 个月前退出的容器,但我的服务没有最近退出的容器,为什么会这样?

kubernetes

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

弹性容器中的反应选择

如何让 react-select 尊重 flex 布局?以下没有任何工作。

 const Container = styled('div')`
   width: 100%;
   height: 100%;
   display: flex;
   flex-flow: row wrap;
   justify-content: space-around;
   align-items: baseline;
 `;

const selectStyles = {
  input: base => ({
    minWidth: 200,
    flex: 1,

<Container>
<Select
  style={{ flex: 1 }}
  styles={selectStyles}
Run Code Online (Sandbox Code Playgroud)

javascript flexbox reactjs react-select

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

atomic_flag 是如何实现的?

是如何atomic_flag实施的?在我看来,在 x86-64 上它atomic_bool无论如何都等效,但这只是一个猜测。x86-64 实现与 arm 或 x86 有什么不同吗?

c++ arm x86-64 atomic stdatomic

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