小编Mat*_*hal的帖子

c ++中的"传递"动态链接

假设我有一个动态库a.so.

然后,我建立b.so针对a.so只有当a.so存在于机器上.

然后,我建立可执行的c反对b.so.

我希望能忘掉一切a.soc Makefile,但现在看来,我需要补充a-L标志或者我不确定引用a.so时符号c链接.

这是正常的动态链接还是我忘记了什么?

c++ dynamic shared-libraries dynamic-linking transitive-dependency

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

Doxygen:显示未记录方法的警告

我用doxygen激活了警告

WARNINGS              = YES
WARN_IF_UNDOCUMENTED  = YES
WARN_IF_DOC_ERROR     = YES
WARN_NO_PARAMDOC      = YES
Run Code Online (Sandbox Code Playgroud)

但是像这样的无证方法:

void AnimationManager::setAnimationTimeStep( double timeStep )
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

在氧气生成期间不要发出任何警告.在这种情况下有没有办法显示警告?

例如,与未记录的返回相同的问题

/**
 * @brief brief description
 */
bool AnimationManager::hasAnimationTimeStep( )
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

不会因无证件退货而发出警告

documentation warnings doxygen

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

Xdnd drop 支持错误的实现

我前段时间在 VTK 中实现了 Xdnd drop 支持实现。除了 Thunar 文件管理器之外,它工作得很好。当时所有其他文件管理器都工作正常。我们当时将这一限制视为 Thunar 错误。

我实现的功能非常简单:

  • 将应用程序的窗口设置为XdndAware
  • 接收位置消息并回复我们准备好接收
  • 接收下拉消息并请求选择
  • 接收选择通知并恢复URI
  • 将 URI 转换为我们可以使用的内容

没什么特别的,我什至没有碰过列表类型。

快进几年,现在海豚用户无法将文件正确放入我们的应用程序中。URI 始终是自 dolphin 启动以来删除的第一个文件。重新启动我们的应用程序没有任何效果。pcmanfm 完全没有错误。

这不是 Dolphin 错误,文件可以从 Dolphin 放入搅拌机或 Firefox 上,不会出现任何问题。

所以我们的实现中肯定有一个错误,但我已经盯着代码一段时间了,我尝试的所有方法都没有效果,除了完全破坏 Xdnd 支持。

以下是实现中有趣的部分:

//------------------------------------------------------------------------------
vtkXRenderWindowInteractor::vtkXRenderWindowInteractor()
{
  this->Internal = new vtkXRenderWindowInteractorInternals;
  this->DisplayId = nullptr;
  this->WindowId = 0;
  this->KillAtom = 0;
  this->XdndSource = 0;
  this->XdndPositionAtom = 0;
  this->XdndDropAtom = 0;
  this->XdndActionCopyAtom = 0;
  this->XdndStatusAtom = 0;
  this->XdndFinishedAtom = 0;
}

[...]


//------------------------------------------------------------------------------
void vtkXRenderWindowInteractor::Enable()
{
  // avoid cycles of calling …
Run Code Online (Sandbox Code Playgroud)

c++ drag-and-drop xorg drop

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

zeromq中的lazy pub/sub,只获取最后一条消息

我试图从示例wuclient/wuserver在zeromq上实现一个懒惰的订阅者.客户端比服务器慢,所以它必须只获取服务器发送的最后一条消息.

到目前为止,我发现这样做的唯一方法是连接/断开客户端,但每个连接当然有不必要的成本,大约3ms:

server.cxx

int main () {
    //  Prepare our context and publisher
    zmq::context_t context (1);
    zmq::socket_t publisher (context, ZMQ_PUB);
    publisher.bind("tcp://*:5556");
    int counter = 0;
    while (1) {
        counter++;

        //  Send message to all subscribers
        zmq::message_t message(20);
        snprintf ((char *) message.data(), 20 ,
                  "%d", counter);
        publisher.send(message);
        std::cout     << counter <<  std::endl;
        usleep(100000);
      }
      return 0;
    }
Run Code Online (Sandbox Code Playgroud)

client.cxx

int main (int argc, char *argv[])
{
  zmq::context_t context (1);
  zmq::socket_t subscriber (context, ZMQ_SUB);
  while(1){

    zmq::message_t update;
    int counter;

    subscriber.connect("tcp://localhost:5556"); // This call …
Run Code Online (Sandbox Code Playgroud)

datareader lazy-evaluation publisher subscriber zeromq

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

如何在 docker 中运行交互式 Centos 6

我无法在 docker 中使用 Centos:6 运行交互式会话。与 Centos 完美配合:7

>docker -v
Docker version 18.03.0-ce, build 0520e24302
>docker pull centos:6
...
>docker run -it centos:6
[just returns to my terminal]

>docker pull centos:7
...
>docker run -it centos:7
>[root@f8c0430ed2ba /]#cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
Run Code Online (Sandbox Code Playgroud)

知道发生了什么吗?

我尝试使用旧版本的 docker 并提取了所有新图像 Centos:6/6.6/6.7/6.8/6.9 并且它显示了相同的问题。最后我还尝试了 /bin/bash 或 sh 。

此外,我确信它在一年前或多或少地工作过。我正在使用 ArchLinux

centos centos6 docker

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

Qt是否在强制系统区域设置?

以下示例似乎显示了Qt中的错误。还是我弄错了?

std::cout << atof("0.456") << std::endl; // OK prints 0.456
QApplication app (argc, argv);
//QLocale::setDefault(QLocale::C); // No effect at all.
std::cout << atof("0.456") << std::endl; // do not work on on fr_FR.UTF-8, print 0.
Run Code Online (Sandbox Code Playgroud)

当使用非标准语言环境时,在我的示例fr_FR.UTF-8中,创建QApplication似乎会更改系统语言环境,因为atof使用它来进行转换。

在我看来,创建QApplication会拉动系统区域设置并使用它调用setenv。

qt locale

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

匹配vim中的模式,而不是行的开头

我试图在vim中搜索一个模式,但是为了缩进目的,模式不能位于行的开头,也就是行的第一个非空白字符.

例如.:

    Should() not be found
    This() Should() be found
Run Code Online (Sandbox Code Playgroud)

使用/Should,都应该找到模式.我试过用"不开始行"之类的东西,但是它不起作用:/[^^] *Should.我用它做了它的工作:/\w.* *Should但它显然不理想.

regex vim

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