Eclipse使用多个项目

时间:2012-10-12 20:43:45

标签: c++ eclipse multiple-projects

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

我创建了两个单独的Makefile项目'first'和'second',我可以分别构建它们。

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

如果我需要重新构思我的问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

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

  • -L<directory>

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

  • -l<name-of-lib>

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

总结:要链接到您链接的另一个目录中的库,如下所示:

-l

在您的情况下,您应该为$ gcc <other flags> <object files> -o <executable> -L<directory> -l<library> 选项指定-L的库所在的目录,并且对于project1选项,您可以传递库的基本名称。


另一方面,如果您没有将-l转换为库,并希望直接链接其目标文件,那也没关系:

project1

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

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

然后,如果您在$ gcc <flags> <object files of project1> <object files of project2> -o <executable> 目录中,则可以从project2访问目标文件,如

project1

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

相关问题