Eclipse CDT C/C++:包含来自另一个项目的头文件
Eclipse CDT C/C++: Include a header file from another project
我在Eclipse CDT中有两个c++项目,主要和共享。在共享中,我有一个名为calc.h的标头。我想在main中使用这个标题,所以我做了以下操作:
- 在主文件中添加了
#include "calc.h
- 在main的
properties -> Project references
我检查了共享
我希望这会起作用,但是我在编译时得到了一个fatal error: calc.h: No such file or directory
,所以项目引用不知何故不起作用。
我可以通过在 main 的 properties->C/C++ Build->Setting->GCC C++Compiler->Includes
中手动添加共享的源文件夹来让它工作,但我有一种不好的感觉,这在更大的项目更复杂的依赖项上会变得很麻烦。因此,我希望 Eclipse 可以通过项目引用来处理这个问题。
我错过了什么还是手动是唯一的方法?
你是对的,这就是这样做的方法!
我在大型项目上使用 Eclipse CDT,但不使用 Eclipse 编译器设置。使用 CDT 编译器的设置有一些缺点:
- 正如你所说,在大型项目中,这很麻烦。
- 如果你想在没有 Eclipse 的平台上编译你的项目(当你部署你的应用程序时(,这并不简单。
我使用 CMake 来管理我的 Eclipse 项目。当我开始一个新项目时,我执行以下步骤:
- 在终端中,为新项目创建一个文件夹。
- 使用您喜欢的文本编辑器(vim,emacs,Text edit,kate等(为您的项目创建CMakeLists.txt文件。您不必创建详尽的 CMakeLists,只需为您的第一个文件创建一个小的 CMakeLists就足够了。
- 然后,让 cmake 生成 Eclipse 项目,如下所示:
cmake -G "Eclipse CDT41. Unix Makefiles"
- 打开 Eclipse,单击"文件"--">导入">,然后选择"常规/现有项目进入工作区"。选择在第一步中创建的文件夹,您的项目就可以在 eclipse 中使用了。
CMake 是用于管理项目的编译器配置工具...如果你不知道这一点,我鼓励你去发现它。
干杯!
如何使用符号链接将 Eclipse 项目包含在另一个 Eclipse 项目中(将一个项目链接到另一个项目(
我喜欢在文件系统/操作系统级别将另一个项目符号链接(符号链接(到当前项目中。这使您的文件系统认为其他项目的文件是当前项目文件的一部分,这使得 Eclipse 认为其他项目的文件是当前项目文件的一部分。
例如,在Linux中(或者我认为MacOS也是如此(:
cd path/to/current_project
ln -si path/to/other_project .
(上述符号链接在 Windows 中也是可能的,但命令会有所不同。
现在,在 Eclipse 的"项目资源管理器"中右键单击当前的 Eclipse 项目,然后转到"刷新"。
您刚刚从其他项目符号链接到当前项目的文件夹现在将显示。您将看到一个文件结构,如下所示:
current_project/other_project
。所有其他项目的文件都在此current_project/other_project
目录中。
我一直在 Eclipse 中做这个技巧,让 Eclipse 索引并将 Arduino 核心源代码引入我当前的 Arduino 项目中,这样我就可以轻松地按 Ctrl + 单击并在 Arduino 核心周围导航,以便在我处理库或项目时更好地理解所有内容。
<小时 />这是我写的自述文件,其中我完整记录了这些说明:https://github.com/ElectricRCAircraftGuy/AmboVent/blob/master/3-Software/Arduino/arduino_core/readme.md。
此文件夹中应该是一个指向 arduino 安装文件夹的符号链接。例如,通过这种方式,Eclipse项目可以完全访问所有Arduino源代码,以便在探索代码时跳转到Arduino函数和定义的核心实现。
引用:
- 如何在Windows中建立符号链接:https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/
如何建立到核心Arduino源代码的符号链接:
1(要在Mac或Linux上创建符号链接,该命令如下所示。这将在此处创建一个名为"arduino"的符号链接文件夹:
ln -s "/path/to/arduino_installation_folder" arduino
例:
cd /path/to/here ln -s "/home/gabriel/Downloads/Install_files/Arduino/arduino-1.8.8" arduino
2( 要在 Windows 上创建符号链接,命令如下所示:
mklink /D arduino "C:UsersgabrielDownloadsInstall_filesArduinoarduino-1.8.8"
关键字:eclipse 导入另一个项目;symlink eclipse 项目;将 Arduino 核心符号链接到 Eclipse 中的项目;eclipse 将项目链接到另一个项目 c/c++
- 运行同一解决方案的另一个项目的项目
- 是否可以将 EXE 文件作为 lib 文件链接到另一个项目?
- 如何使用另一个项目命名空间?
- 单元测试类无法在我要测试的同一解决方案中的另一个项目中找到类
- 如果我尝试将对话框从一个项目移动到另一个项目,我是否需要从 rc 文件中复制 DESIGNINFO、对话框信息和AFX_
- OpenCV:文件存储操作员">>"在一个项目中工作,但不在另一个项目中工作(在同一类上)
- 如何将另一个项目中用 C 编写的源代码包含在我自己的项目中,C++在 Visual Studio 中
- 将过滤器中的所有.cpp和.h移动到另一个项目并更正其文件夹位置
- 在另一个项目中包括继承的类时,抽象类的链接器错误
- 创建在另一个项目中定义的类对象
- 如何在不复制的情况下将C++类从一个项目重用到另一个项目
- Cmakelist仅用于标题项目,并将其用于另一个项目
- 在另一个项目中将模板函数用作dll
- 在同一解决方案但不同配置的另一个项目中使用一个类
- 未解析的外部符号来自一个项目中的静态库,而不是另一个项目.(C++)
- std :: getline在一个项目中汇总了罚款,但不是另一个项目
- 导出visual studio c++项目以在另一个项目中使用,而不显示.cpp和.h源文件
- 有没有办法设置 Eclipse 以使用另一个项目的输出作为库?
- C++/VS 2012-多项目解决方案:一个项目中存在链接器错误,但另一个项目没有
- Boost:阻塞,直到队列有另一个项目