【问题标题】:How to link two projects in C++如何在 C++ 中链接两个项目
【发布时间】:2017-09-29 08:37:29
【问题描述】:

我想用 C++ 链接两个项目。具体来说,我想从 project2 中的 project1 调用一个函数。我已经编写了正确的代码来链接这些项目,但我必须链接和 Makefiles(一起构建)?或不?现在如何构建论文项目?当我在project2中调用“make”时必须调用project1中的“make”?

谢谢!

【问题讨论】:

    标签: c++ makefile build cmake gnu


    【解决方案1】:

    我认为你想要的是一个 makefile 依赖项?例如:

    在makefile1中:

    all:  
        gcc my_file.c -o libMyLib.a
    

    在makefile2中:

    all: my_file.c
        gcc main2.c -o MyProg.exe
    

    当您更改 projekt1(my_file.c) 中的函数并在 project2 上调用 make 时,它会注意到 my_file.c 自上次构建 project2 以来已更改并再次构建它。

    如果 project2 取决于 project1 的结果(即libMyLib.a;不仅取决于.c-文件),您需要make 他们两者。 您可以从 makefile2 调用 project1 上的 make,例如:

    makefile2:

    all: libMyLib.a
        $(MAKE) all -C /path/to/project1
        gcc main2.c -o MyProg.exe
    

    【讨论】:

      【解决方案2】:

      这两个项目都是“二进制”的?还是“静态”/“动态”库? 如果两个项目都是二进制的,则无法链接它,因为定义了两个“主要”功能。

      如果两个项目都只是函数定义,则将它们设为共享库,然后使用这些共享库创建新的二进制文件。

      【讨论】:

      • 该项目有两个主要的(彼此一个),但我只想从第二个项目中调用没有主要功能的功能。
      猜你喜欢
      • 1970-01-01
      • 2012-03-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多