gpt4 book ai didi

C++ 编译问题,sqlite3

转载 作者:搜寻专家 更新时间:2023-10-31 00:33:36 26 4
gpt4 key购买 nike

我正在尝试编译一个使用 sqlite3 的 C++ 程序。我正在使用这个生成文件:

CXX = g++ 
CC = gcc
CFLAGS = -c -O2
CXXFLAGS = -Wall -O3 -std=c++11
SQLFLAGS = -DSQLITE_THREADSAFE=0

OUTPUTBIN = bot
OUTPUTDIR = ./bin/
MKDIR = mkdir -p $(OUTPUTDIR)
OBJECTC = sqlite3.o
CSOURCES = sqlite3.c
CXXSOURCES = main.cpp bot.cpp


all: project

project: createdir sql compilecpp


createdir:
$(MKDIR)

sql:
$(CC) $(CSOURCES) $(SQLFLAGS) $(CFLAGS) -o $(OUTPUTDIR)$(OBJECTC)

compilecpp:
$(CXX) $(OUTPUTDIR)$(OBJECTC) $(CXXSOURCES) $(CXXFLAGS) -o $(OUTPUTDIR)$(OUTPUTBIN)

但是输出这些错误:

akf@akf-v5 ~/Documents/Proletarian/c++ $ make
mkdir -p ./bin/
gcc sqlite3.c -DSQLITE_THREADSAFE=0 -c -O2 -o ./bin/sqlite3.o
g++ ./bin/sqlite3.o main.cpp bot.cpp -Wall -O3 -std=c++11 -o ./bin/bot
./bin/sqlite3.o: In function `unixDlError':
sqlite3.c:(.text+0x170f4): undefined reference to `dlerror'
./bin/sqlite3.o: In function `unixDlClose':
sqlite3.c:(.text+0x5de9): undefined reference to `dlclose'
./bin/sqlite3.o: In function `unixDlSym':
sqlite3.c:(.text+0x5e01): undefined reference to `dlsym'
./bin/sqlite3.o: In function `unixDlOpen':
sqlite3.c:(.text+0x5e21): undefined reference to `dlopen'
collect2: error: ld returned 1 exit status
make: *** [compilecpp] Error 1

我对造成这种情况的原因感到非常困惑。我可以看到 sqlite3 是一个 C 程序,但我不认为它会导致任何问题。

最佳答案

错误信息告诉我们 dlerror, dlclose, dlsymdlopen 被使用但不能成立。这些函数是动态链接加载器的一部分。您还必须链接动态链接器。将 -ldl 添加到您的链接标志。另见 dlopen manpage为您的系统。

关于C++ 编译问题,sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192835/

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