热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:在Eclipse中引用外部文件:在项目属性中虚拟链接文件与构建设置?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了在Eclipse中引用外部文件:在项目属性中虚拟链接文件与构建设置?相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了在Eclipse中引用外部文件:在项目属性中虚拟链接文件与构建设置?相关的知识,希望对你有一定的参考价值。



Web上有关于CDT Eclipse中使用外部文件资源的主题的信息:C / C ++和H文件位于文件系统的其他位置。所有描述的方法都有两种方法:



  1. 在项目空间内创建虚拟链接文件,这些文件指向实际文件的位置而不复制它们

  2. 在Project-> Properties-> C / C ++ general-> Paths and Symbols and related Project-> Properties-> C / C ++ Build(链接文件夹和包含)中添加外部引用资源的位置

我不确定第一种方法是否总是足够而不添加第二种方法,但似乎第二种方法在没有第一种情况下很好地构建。

我的问题是关于两者的比较。这些方法是否应该被类似地使用,或者在某些情况下每个方法都是首选的?

每种方法都自给自足而不应用其他方法吗?

这个论坛帖子https://www.eclipse.org/forums/index.php/t/1087314/建议,对于包含文件,第一种方法可能甚至不够,因为Build Settings仍应更新(第二种方法)以包含链接的H文件......那么第一种方法可能是无关紧要的?


答案

如果要编辑外部定位文件作为项目工作的一部分,通常使用第一种方法,如果它们只是您在不修改的情况下使用的依赖项,则通常使用第二种方法。

在技​​术层面上,不同之处在于,使用第一种方法,文件将成为项目模型的一部分,因此,例如在Open Resource中显示为候选者,而在第二种方法中他们不会。另一个区别是,对于第一种方法,文件是独立索引的,而使用第二种方法,文件只是由于被项目中的文件包含而被编入索引(因此,例如,这些目录中的.cpp文件通常不会被编入索引)第二种方法)。

更新:评论中的问题答案

第一种方法在所有情况下是否足够,而不更新路径和符号属性?

不,如果链接目录中存在头文件,这些头文件包含在项目中的文件中,使用的包含路径与当前目录不相关(因此不只是同一目录中的#include "foo.h",子目录中的#include "../foo.h"等,但是在其他目录中的#include ),你仍然想在Paths和Symbols中指定那些包含路径。

CDT的索引器确实有一个“允许启发式解析包含”选项(在Preferences - > C / C ++ - > Indexer中指定)可能允许您避免添加路径和符号的路径,但请注意(1)这会影响索引器只是,而不是构建(如果你使用自己的makefile进行构建可能会很好),以及(2)因为它是启发式的,它并不完美,例如如果你在不同的目录中有相同名称的标题,它可能会混淆。为了获得最佳效果,我建议取消选中“允许启发式解析包含”,并始终明确指定包含路径。

如果引用的文件无需修改即可使用第二种方法本身就足够了吗?

我不明白为什么不。



推荐阅读
  • 本研究聚焦于利用Java、PHP和Python开发的汽车销售管理系统,旨在为计算机科学专业学生的毕业设计提供参考。项目采用BS架构,结合多种编程语言的优势,实现高效的数据管理和用户交互。该系统不仅涵盖了汽车销售的核心功能,还通过集成先进的技术栈,提升了系统的稳定性和扩展性。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 探讨Java中利用CXF与JAXRS实现Web服务请求及会话管理的常见问题与解决方案 ... [详细]
  • Spring Batch 异常处理与任务限制优化策略 ... [详细]
  • 开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用
    开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 在 Android 开发中,通过合理利用系统通知服务,可以显著提升应用的用户交互体验。针对 Android 8.0 及以上版本,开发者需首先创建并注册通知渠道。本文将详细介绍如何在应用中实现这一功能,包括初始化通知管理器、创建通知渠道以及发送通知的具体步骤,帮助开发者更好地理解和应用这些技术细节。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
author-avatar
qinsg688_377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有