gpt4 book ai didi

c++ - Eclipse 处理多个项目

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:17 25 4
gpt4 key购买 nike

我有两个用 C++ 编写的项目。假设项目被命名为 first 和 second,第一个是基础项目,第二个项目有第一个的插件,所以当我构建和安装第二个项目时,它只是增加了第一个的功能。

我创建了两个单独的 Makefile 项目“first”和“second”,并且我能够分别构建它们。

我的问题是我无法将“第一个”中生成的二进制文件链接为“第二个”的基本二进制文件。我尝试在 stackoverflow 上搜索类似的问题,但我不知道如何将“第一个”中生成的二进制文件链接到“第二个”,我们将不胜感激。

如果我需要重新设计问题,请告诉我。

最佳答案

如果您使用的是 GCC,请阅读 reference for linker options您会注意到与外部库链接的选项:

  • -L<directory>

    这个选项告诉链接器添加<directory>到库搜索路径。换句话说,它告诉链接器在哪里可以找到库文件。

  • -l<name-of-lib>

    这个选项告诉链接器链接一个库。 POSIX 环境(使用 Cygwin 或 MinGW 的 Linux、OSX、Windows)中的库被命名为 libname-of-lib.a , 但带有 -l您不需要使用 lib 的选项前缀或 .a扩大。另请注意,在选项 -l 中,即小写字母 L(不是大写 i 或数字 1)。

总结一下:要从另一个目录链接库,您可以这样链接:

$ gcc <other flags> <object files> -o <executable> -L<directory> -l<library>

在你的情况下,你应该为 -L选项指定库所在的目录 project1是,并且对于 -l您传递库的基本名称的选项。


另一方面,如果您不转project1进入一个库,并想直接链接到它的目标文件,这也很好:

$ gcc <flags> <object files of project1> <object files of project2> -o <executable>

目标文件当然可以是完整路径或相对路径。例如,如果您具有以下目录结构:

/`-- home    `-- user        `-- myproject            |-- project1            `-- project2

Then in if you are in the project2 directory you can access object files from project1 like

../project1/objectfile.o

所有这些当然都可以放在 Makefile 中。

关于c++ - Eclipse 处理多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com