Eclipse处理多个项目



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

我创建了两个独立的Makefile项目"第一个"one_answers"第二个",我能够分别构建这两个项目。

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

如果我需要重新定义我的问题,请告诉我。

如果您正在使用GCC,并阅读链接器选项的参考,您会注意到与外部库链接的选项:

  • -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>

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

/`--家`--用户`--我的项目|--项目1`--project2

然后,如果您在project2目录中,您可以像一样从project1访问对象文件

../project1/objectfile.o

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

最新更新