【发布时间】:2020-12-19 21:49:03
【问题描述】:
我正在尝试在我的 DevCpp 项目中使用名为 crypto 的库:
为此,我已将库文件添加到“链接器参数”中,并将项目目录添加到“项目选项”中的“库、包含和资源目录”中,如下所示:
最后,我在 main.cpp 文件中导入了头文件,并从库中调用了一个函数:
#include <iostream>
#include <crypto.h>
int main() {
void * ctx;
initGP(&ctx, 0, (char *)"123456", (char *)"123456", (char *)"TEST");
return 0;
}
但是当我尝试编译代码时,我在链接时遇到库函数的未定义引用错误:
我的生成文件:
# Project: Project1
# Makefile created by Dev-C++ 5.11
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = main.o
LINKOBJ = main.o
LIBS = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib32" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -static-libgcc -L"C:/Users/user/Desktop/prj" crypto.dll crypto.lib -m32
INCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Users/user/Desktop/prj"
CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -I"C:/Users/user/Desktop/prj"
BIN = Project1.exe
CXXFLAGS = $(CXXINCS) -m32
CFLAGS = $(INCS) -m32
RM = rm.exe -f
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
问题:出了什么问题,我该如何解决?
【问题讨论】:
-
您使用的库可能是为 msvc / Visual Studio 编译的,不适用于 mingw。使用 Visual Studio,您将链接到 .lib(导入库)文件。