小编dah*_*527的帖子

“LD_LIBRARY_PATH”设置的目录是否会找到它的子目录?

我想用 lib.so 运行 C++ 代码并设置“LD_LIBRARY_PATH=/apollo/bazel-bin”但 lib.so 在“/apollo/bazel-bin/python”中,然后我得到了错误不能找到 lib.so。
“LD_LIBRARY_PATH”设置的目录是否会找到它的子目录?我在“/apollo/bazel-bin/a”、“/apollo/bazel-bin/b”和“/apollo/bazel-bin/c”中有一些lib.so,我不想设置3个目录但是“ /apollo/bazel-bin/”?

linux shared-libraries

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

std::bind 在堆栈上?

我想将c++ objcet 成员回调 func传递给一个只有 void*的“c” lib。然后我使用 std::function 来注册回调处理程序。但是当我将 std::function<>* 转换为 void* 时出现问题,似乎当转换为 void* 时 std::function<>* 被破坏了。

下面是测试代码。

#include <iostream>
#include <functional>

class TfLight {
 public:
  void print(int a) {
    std::cout << "TfLight::print " << a << std::endl;
  }
};

class Server {
 public:
  void run(int a) {
    std::function<void(int)>* func = reinterpret_cast<std::function<void(int)>*>(ptr);
    std::cout << func << std::endl;
    (*func)(a);
  }
  
  void register(std::function<void(int)> tf) {
    std::cout << (&tf) << std::endl;
    // f = tf;
    setPtr(&tf);
  }
  
  void setPtr(void* p) …
Run Code Online (Sandbox Code Playgroud)

c++ stdbind

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

标签 统计

c++ ×1

linux ×1

shared-libraries ×1

stdbind ×1