当前位置: 首页 > 知识库问答 >
问题:

eclipse cdt autotools包括其他工作区项目源代码

庄博厚
2023-03-14

我试图在我的Eclipse CDT工作区中包含并构建来自另一个项目的源文件,用于Autotools项目。我已经尝试了https://stackoverflow.com/A/20792721/4128201中给出的步骤来链接源(.cpp)和头(.h)文件,以及https://stackoverflow.com/A/2305737/4128201中给出的步骤来通过设置makefile.am来html" target="_blank">构建引用项目中的源文件,但我仍然会遇到与发现/链接文件有关的构建错误。为了论证起见,我有以下工作区:

projectA/ 
        src/

projectB/ 
        src/

我想从projecta/src在projectb/src中包含和构建源代码,所以我在projectb的中添加了projecta/src作为“projecta”

属性->C/C++通用->路径和符号->源位置

这将在Eclipse工作区项目中产生一个新的链接源文件夹,即:

projectA/
        src/

projectB/ 
        src/
        projecta/ (linked to projectA/src/)

projecta/src作为am_cxxflags=-i$(projecta_dir)include包含在makefile.am中,其中projecta_dir定义为中的项目路径变量

属性->资源->链接资源->路径变量

作为到Projecta/src的绝对路径。所以我需要知道是否可以将makefile.am定向到父目录,以及Eclipse中的符号链接目录是否对makefile.am的访问有效?

当将ProjectA/src定义为ProjectB/src中的链接子目录以导致:

projectB/
        src/
            ...
            projecta/ (linked to projectA/src)

并将makefile.am(在ProjectB/src中)定向到子目录:

AUTOMAKE_OPTIONS = subdir-objects
bin_PROGRAMS = projectB
projectB_SOURCES = ... projecta/XYZ.cpp 

并且包含标题#include“projecta/xyz.h”,我仍然得到错误:

未解决的包含:“ProjectA/XYZ.H”

作为参考,这是一个Yocto项目ADT Autotools C++项目,它实现了GNU Autotools工具链

共有1个答案

范兴文
2023-03-14

在查看https://www.gnu.org/software/automake/manual/htmlnode/include.html#include并意识到需要完全绕过Eclipse符号链接之后,我终于找到了一个解决方案。因此,现在我将ProjectB/src的makefile.am中的ProjectA/src引用为:

AUTOMAKE_OPTIONS = subdir-objects
bin_PROGRAMS = projectB
projectB_SOURCES = ... $(top_srcdir)/../projectA/src/XYZ.cpp

AM_CXXFLAGS = @projectB_CFLAGS@ -I$(top_srcdir)/../projecta/src
 类似资料:
  • 其他资源:可以定位为“不需要做任务处理,只要直接打包输出就可以的资源”,比如icon图标资源、字体资源等 打包其他资源只需要使用到 file-loader 一、打包其他资源的核心配置 // webpack.config.js webpack的配置文件 // 路径: ./webpack.config.js ………… // loader的配置 module: { rul

  • 我从学习Spring开始,创建基本项目,创建数据库,插入值,然后在web浏览器中打印。我的问题是,当我把RestController放在同一个包中,就像main class一样--这是可以的,但是我想把它分发到其他包中,并且当我创建新包时,移动RestController就不起作用了。让met解释: 我的项目看起来像: 我的pom.xml看起来像 它是自动生成的,我只写一个依赖项

  • 问题内容: 我已经使用詹金斯了很多年了,但是我从来没有自己设置它,就像我在新工作中所做的那样。我遇到了几个问题。 默认工作空间位置 -最新的Jenkins似乎在Jenkins \ jobs [projectName] \ workspace中具有默认工作空间,并且对于每个构建都将被覆盖(或擦除(如果选择))。我认为应该将其放置在Jenkins \ jobs [projectName] \ buil

  • 默认工作区位置-最新的Jenkins似乎在Jenkins\jobs[projectName]\workspace中有默认的工作区,并且在每次构建时都被覆盖(如果选中,则被删除)。我认为它应该放在Jenkins\jobs[projectName]\build[build_id]\中,这样它就可以存储每个构建的工作区状态,以供将来参考? 在project>build_id页面上显示工作区--这与前面的

  • 我正在用cxf-xjc生成webservice工件,并试图用构建助手插件将它们添加到源代码中。当它在单个Maven项目中使用时,它工作正常,但是现在我已经进入了一个多模块项目,生成的类没有作为源代码包含在内。 类被正确地生成,构建帮助插件在类生成后执行。构建助手的输出显示了类所在的正确的源目录路径,并显示了“添加”。 波姆。xml 控制台剪 在我将其移动到模块之前,此配置工作正常。我已经更改为生成

  • Note: Seafile 服务器 5.0.0 之后,所有配置文件都移动到了统一的 conf 目录下。 了解详情. 从专业版服务器的 2.0.5 版本开始,Seafile 可以使用兼容 S3 的云存储(比如 OpenStack/Swift)作为后端。这篇文档将以使用 Swift 为例。 准备工作 首先您需要为 Swift 启用 S3 的模拟中间件。有关说明可以参考以下链接: http://www.