gpt4 book ai didi

linux - 为什么在非标准位置链接共享库后会出现运行时错误?

转载 作者:可可西里 更新时间:2023-11-01 11:44:37 25 4
gpt4 key购买 nike

我是 Linux 新手。我写了一个使用MySQL的应用程序,其Makefile如下:

OBJ = main.o PeerDbOpMgr.o
MYSQL_INC = ./mysql/include
LNK_MYSQL = ./mysql/lib/ -lmysql

main : $(OBJ)
g++ -g -o main $(OBJ) -L$(LNK_MYSQL) -lpthread -lm

main.o : main.cpp
g++ -g -c -I$(MYSQL_INC) main.cpp


PeerDbOpMgr.o : PeerDbOp.cpp PeerDbOp.h
g++ -g -c -I$(MYSQL_INC) PeerDbOp.cpp -o PeerDbOpMgr.o

clean :
rm main $(OBJ)

我编译成功了。但是当我运行它时,它显示了一个错误:

./main: error while loading shared libraries: libmysql.so.16: cannot open shared object file: No such file or directory

libmysql.so.16文件在./mysql/lib/libmysql.so.16下,为什么提示没有这个文件或目录?

最佳答案

您已将您的应用程序链接到不在运行时链接器路径中的库。当您运行它时,您的应用程序应该可以正常工作:环境 LD_LIBRARY_PATH=./mysql/lib ./main

要阅读的联机帮助页:ld(1), ldconfig(8)

关于linux - 为什么在非标准位置链接共享库后会出现运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934878/

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