【问题标题】:How to add libs to Eclipse CDT-managed projects如何将库添加到 Eclipse CDT 管理的项目
【发布时间】:2015-05-12 07:07:30
【问题描述】:

我正在使用Eclipse CDT plugin 编写简单的 C 程序,但在文档中找不到有关如何:

  • 导入C standard librariesassert.h
  • 导入非标准的第 3 方库,例如 glib,甚至可能是我自己的本地库

在 Java 领域,要将 jar/lib 添加到项目的构建/编译路径中,一种解决方案是将 jar 复制到项目内的 lib/ 目录中,右键单击它,然后转到 @987654326 @。 我想知道带有 CDT 的 C 程序的等价物是什么?

【问题讨论】:

    标签: c dependencies eclipse-cdt


    【解决方案1】:

    来自http://wiki.eclipse.org/CDT/User/FAQ#How_do_I_add_an_external_library_to_my_C.2B.2B_project.3F

    对于包含:右键单击您的项目并转到属性>>C/C++ 构建>>设置>>GCC C++ 编译器>>包含

    您必须为外部库(头文件所在的位置)添加包含路径。 Eclipse 索引器(代码完成等)和编译器需要此信息

    对于库:右键单击您的项目并转到 Properties>>C/C++ Build>>Settings>>GCC C++ Linker>>Libraries 您必须添加库搜索路径(选项 -L)和您想要的库链接到(选项-l)。链接器需要此信息。

    【讨论】:

    • 很棒的发现 @rost0031 (+1) - 快速跟进:我是 C 编程新手:“包含”和“库”有什么区别?是否包含只是未编译的源代码(然后您必须与您的应用程序一起编译),而库已经是打包的二进制文件?再次感谢!
    • 库是一个二进制文件,其中包含编译的函数的所有符号。头文件(包含)包含这些函数的相关声明,并告诉您库中的内容并允许链接器链接到他们。
    • 有关库和头文件的更多信息请参见此处:yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
    • 是的,您必须同时包含两者。编译器使用头文件来查找对您从 exe 调用的函数的引用。链接器使用该库来实际查找对您正在调用的函数的引用。请注意,头文件(包含)和库的说明是不同的。
    • 我应该稍微修改一下:您不必包含标准 C 内容的库。 (stdio.h、stdlib.h 等)。编译器将自动正确链接到那些。但是,如果您正在使用某些第三方库,则必须同时使用两者。如果您要创建要使用的库,同样适用:您必须同时提供标头和 dll/so/a 文件。
    猜你喜欢
    • 2017-09-26
    • 2010-10-27
    • 1970-01-01
    • 2014-04-30
    • 2015-05-17
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多