首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的程序在执行过程中找不到我的共享库。

我的程序在执行过程中找不到我的共享库。
EN

Stack Overflow用户
提问于 2021-08-05 15:50:42
回答 1查看 44关注 0票数 1

我的程序在执行过程中找不到我的共享库。

我就是这么编译的:

代码语言:javascript
复制
//shared library fct
g++ -c -fpic fct.cpp
g++ -shared fct.o -o libfct.so

//my program
g++ main.cpp -L/home/user/shared_library/ -lfct -I/home/user/shared_library/ -o main

当我试图运行该程序时,它会给出以下错误消息:

代码语言:javascript
复制
./main: error while loading shared libraries: libfct.so: cannot open shared object file: No such file or directory

这是我的源文件:

main.cpp:

代码语言:javascript
复制
#include <iostream>
#include "fct.h"

int main()
{
   fct();

   return 0;
}

fct.h:

代码语言:javascript
复制
#ifndef FCT_HEADER_INCLUDED
#define FCT_HEADER_INCLUDED

#include <iostream>

void fct();

#endif

fct.cpp:

代码语言:javascript
复制
#include "fct.h"

void fct()
{
    std::cout << "fct() was called!\n";
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-05 16:04:49

在编译时和运行时都需要两次共享库路径。将库路径传递给编译器并不能保证链接器能够找到它。对于临时解决方案,可以将home/user/shared_library添加到LD_LIBRARY_PATH环境变量(在Linux &macOS上)。为了获得更持久的解决方案,您应该将其安装在default dynamic linker search path上的一个目录中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68669802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档