【问题标题】:How to use ".dll" and ".lib" files in DevCpp projects?如何在 DevCpp 项目中使用“.dll”和“.lib”文件?
【发布时间】: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(导入库)文件。

标签: c++ linker mingw dev-c++


【解决方案1】:

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

另外,.lib 文件是 MSVC 库。 gcc 期望 .a.o.so

【讨论】:

  • 谢谢。我该如何解决这个问题?
  • 要么下载 mingw 二进制文件,要么从源代码构建 cryptopp。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多