如何在DevCpp项目中使用“ .dll”和“ .lib”文件?

问题描述

我正在尝试在DevCpp项目中使用名为 crypto 的库:

enter image description here

为此,我已将库文件添加到“链接器参数”,并将项目目录添加到“项目选项”中的“库,包含和资源目录”,如下所示:

enter image description here

enter image description here

最后,我将头文件导入了main.cpp文件,并从库中调用一个函数

#include <iostream>
#include <crypto.h>

int main() {
    void * ctx;
    initGP(&ctx,(char *)"123456",(char *)"TEST");
    return 0;
}

但是当我尝试编译代码时,在链接时间内我遇到库函数的未定义引用错误

enter image description here

我的制作文件

# 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)

问题:出什么问题了,我该如何解决该问题?

解决方法

您不链接.dll,而是链接库并将.dll保留在可执行文件旁边。您看到的错误很可能是因为它无法确定.dll文件是哪种类型的库。

此外,.lib文件是MSVC库。 gcc需要.a.o.so