如何设置 Dev-C++ 编译器以使用 C 库? [复制]

Posted

技术标签:

【中文标题】如何设置 Dev-C++ 编译器以使用 C 库? [复制]【英文标题】:How do I set Dev-C++ compiler to work with a C library? [duplicate] 【发布时间】:2014-11-08 23:23:45 【问题描述】:

我已经为 Dev C++ 下载并设置了 libjpeg 包。我已确保它是最新版本。 然后我在 Dev C++ 中添加了相应的库:

工具 > 编译器 > 目录 我还将编译器设置为 TDM-GCC 4.8.1 64 位版本

我添加的内容: 斌: 开发-Cpp\bin

图书馆: 开发-Cpp\lib

C 包括: 开发-Cpp\include

C++ 包括: 开发-Cpp\include

我还在项目参数中添加了一个链接 链接器: 开发-Cpp/lib/libjpeg.a

我的代码:

#include <iostream>
#include <cstdlib> 
#include <cstdio> 

extern "C" 

  #include <jpeglib.h>  
  #include <jerror.h>


int main(void)
 
  struct jpeg_decompress_struct cinfo; 
  struct jpeg_error_mgr jerr; 
  cinfo.err = jpeg_std_error(& jerr); 
  jpeg_create_decompress(& cinfo); 
  return 0; 

我收到错误:

D:\FP\main.o    In function `main':
14      D:\FP\main.cpp  undefined reference to `jpeg_std_error'
15      D:\FP\main.cpp  undefined reference to `jpeg_CreateDecompress'
...

我看过这个post 似乎相关,但我不知道如何将它应用到 C++。 在我链接到的那个论坛中,当评论者告诉 OP 指定用于库的编译器时,问题以某种方式解决了。 IE。 GCC 用于 C 和 G++ 用于 C++。我遇到了和他一样的错误,所以我认为它是相关的,但我不确定如何重新配置​​它。

我看过帖子:

What is an undefined reference/unresolved external symbol error and how do I fix it?

但这并不能回答我的问题,因为这是未定义引用的一般答案。

【问题讨论】:

“因为这是未定义引用的一般答案” 是的,阅读它 谢谢你的链接,我刚刚看完了。它的信息量很大,但似乎没有我正在寻找的答案。在 C++ 中有对 C 库的引用,我已经完成了建议的操作。然而,有一件事似乎确实相关,那就是“在 gcc 中,您将文件添加到命令行”——关于链接。这与我在问题中提到的类似,但没有详细说明如何去做。这是我想知道的。 @Klik 如何将链接器标志或对象添加到链接应在您的 IDE 文档中提及。 @PeterT 这听起来像是一些很棒的术语,我可以用谷歌搜索。由于我一直在寻找 5 个小时的大部分时间,您能否帮我确认这确实是一个链接问题?即使我已经在项目选项中添加了链接参数。 @Klik 是的,它找到了标题和所有符号,它将 jpeg_std_errorjpeg_CreateDecompress 标记为定义为“其他地方”的符号。在链接阶段,它没有在任何地方找到它们。正如链接问题的答案应该清楚。 【参考方案1】:

您已设置 IDE 以在正确的位置查找库,但您尚未设置项目以实际链接 libjpeg。在您的项目设置中,您会找到这样做的地方。

【讨论】:

我的错误,我忘了提及我的链接。我尝试过链接:Dev-Cpp/lib/libjpeg.a 和 Dev-Cpp/lib/libjpeg.dll.a。我试过分别做每一个,然后一起做。 @Klik:远程我无法看到你做错了什么。您可以显示一堆项目设置的屏幕截图,但这超出了问答存储库的范围。您是否尝试过在聊天室或论坛上提问? 在过去的三个小时里,我一直在尝试设置 libjpeg。我认为这是一个能够回答我的问题的论坛?你有什么建议给我吗? 这个链接的问题没有回答我的问题。我的问题是关于在 Dev C++ 中实现 libjpeg。这特别棘手,因为 libjpeg 是一个 C 库,而我使用的是 C++ 代码。在我链接到的另一个论坛中,当评论者告诉 OP 指定用于库的编译器时,问题以某种方式解决了。 “这特别棘手,因为 libjpeg 是一个 C 库,而我使用的是 C++ 代码。” 这一点也不棘手。

以上是关于如何设置 Dev-C++ 编译器以使用 C 库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Dev-C++设置语言标准

Dev-C++/Cpp使用入门详解

应用让Dev-C++ 支持C++20标准

C++编译器

DEV-C++ 编译器 [安装教程]

Dev-C++软件安装教程