gpt4 book ai didi

c++ - 自己的lib,另一台电脑: cannot open shared object file: No such file or directory

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:49 24 4
gpt4 key购买 nike

今天我的测试继续进行,但我总是得到:“无法打开共享对象文件”。所以我制作了一个小程序,其中包含最重要的内容:

bin:测试;库:TestLib

库:

:

 class TestLib{
public:
TestLib();
void DoSome();
};

cpp:

 #include "testlib.h"
#include <iostream>

TestLib::TestLib(){
}

void TestLib::DoSome(){
std::cout << "Hallo Test_Lib!" << std::endl; std::cout.flush();
}

垃圾箱:

QT creator pro.file:

    HOME = $$system(echo $HOME)
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

LIBS += -L$$HOME/Test_Lib/Libs/ -Wl,-rpath=$$HOME/Test_Lib/Libs/ -lTestLib -ldl -lpthread -lrt

INCLUDEPATH += $$HOME/Test_Lib/Includes/
DEPENDPATH += $$HOME/Test_Lib/Includes/

和主要():

    #include "testlib.h"

int main(){
TestLib nLib;
nLib.DoSome();
return 0;
}

每台电脑上的文件都在

   /home/USERNAME/Test_Lib
/home/USERNAME/Test_Lib/Includes/
/home/USERNAME/Test_Lib/Libs/

在开发计算机上我可以运行 ./Test 并且输出是“Hallo Test_Lib!”。

但在我的另一台计算机上,我收到错误“无法打开共享对象文件:libTestLib:没有这样的文件或目录”。

两台电脑都安装了 Linux Mint-17-64-KDE...

我如何让它工作?

问候 Earlybite

最佳答案

看起来你的库是一个共享对象。您有 2 个解决方案:

  • 您可以使用静态库(.a 文件)以便在运行时不需要共享对象(它将直接嵌入到您的可执行文件中)
  • 您还可以在二进制文件中提供 LibTestLib 文件(就像在 Windows 上为 DLL 所做的一样)。

关于c++ - 自己的lib,另一台电脑: cannot open shared object file: No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30508542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com