我正在尝试用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”中的符号,而不必重新定义它们,并且保持统一库的目的,而无需用户应用程序包含如此多的文件。
1条答案
按热度按时间xtfmy6hx1#
在编译用户应用程序时,我可以使用-I标志将g++指向我的库,从而包含其他.h文件。