创建一个C/C++库:如何包含多个.h文件中的符号?

gmxoilav  于 2023-03-25  发布在  C/C++
关注(0)|答案(1)|浏览(194)

我正在尝试用C & C++构建一个静态库。我希望用户应用程序使用api.cpp中的函数,而api.cpp引用库中的其他代码。我的用户应用程序将有一个'my-lib.h'用于其包含...但问题是用户应用程序如何使用libraries .h文件中的结构和函数而不必重新定义它们?

library/
    src/
        api.cpp // file that i would like the user-applications to utilize
        ... all other .cpp and .c code that api.cpp references
    include/
        all .h files for the code in src/ 

user-app/
    main.cpp
    my-lib.h
    my-lib.a

下面是my-lib.h:

#ifndef MY_LIB_H
#define MY_LIB_H
// functions to be exposed for user applications. 

void hello_world();
int initialize_sx1262_from_file();
int transmit_num_packets(sx1262& p_chip, test_config& p_tc, bool echoing);

#endif

下面是位于src/中的api.cpp:

...

#include "ini.h"

#include "sx1262.h"
#include "sx126x.h"

void hello_world(){

    cout << "Hello World!" << endl;

}

int initialize_sx1262_from_file(){
   // do stuff
}


int transmit_num_packets(sx1262& p_chip, test_config& p_tc, bool echoing ){
   // do stuff
}

...

我想在我的用户应用程序中使用“sx1262.h”中的符号,而不必重新定义它们,并且保持统一库的目的,而无需用户应用程序包含如此多的文件。

xtfmy6hx

xtfmy6hx1#

在编译用户应用程序时,我可以使用-I标志将g++指向我的库,从而包含其他.h文件。

相关问题