如何从共享库中调用程序中的函数

时间:2020-10-10 10:52:16

标签: c++

我想从共享库中调用程序内部的函数,但我不知道。

主程序:

using namespace std;

int b = 2;

void func1(int a) {
    b = b + a;
}

void func2();

int main() {
    func2();
    cout<<"Value: " << b << endl;
    return 0;
}

图书馆:

void somefunc(int a);

void func2() {
    somefunc(5);
}

1 个答案:

答案 0 :(得分:1)

这里的解决方案是不在main.cpp文件中全部定义它们,而是将它们拆分开。按照惯例,您有一个.h(或者,如果愿意的话,是.hpp)头文件,该文件具有共享的函数声明(签名),然后.cpp文件包含定义(实现)。

那是您要拥有的

// functions.h

void func1(int a);
void func2();

然后将实现移动到相应的functions.cpp

然后就这么简单:

#include "functions.h"

func1(0);

尽管有很多组织文件的方法,但我建议不要在main.cpp中放入很多“东西”,而应尽可能保留较高的“东西”。凡是非常复杂的事情都应该在一个函数中分隔开,并且可以在另一个文件中定义。

如果您有一个“沉重的” main.cpp,那么当您向其中堆积更多代码时,编译时间将越来越慢。当您分离事物时,仅需要更改已更改的依赖项即可重建,因此,如果您有20个.cpp文件并且仅更改1,则只需重新编译1.。

相关问题