linux C如何引用C++代码编译生成的库
时间: 2024-02-06 16:11:27 浏览: 180
Linux环境下编译的TensorFlow C++ API动态库文件.7z
5星 · 资源好评率100%
在Linux C程序中引用C++库的步骤如下:
1. 编写C++代码并生成库文件
首先需要编写C++代码并编译生成库文件,可以使用g++编译器来进行编译。生成库文件的命令如下:
```
g++ -c -o libtest.o test.cpp
ar rcs libtest.a libtest.o
```
其中,test.cpp是C++代码文件,libtest.a是生成的库文件名。
2. 编写C代码并链接库文件
然后编写C代码,并在编译时链接生成的库文件。编写C代码时需要包含C++库头文件,并且在调用C++库函数时需要使用extern "C"进行声明,以便C编译器正确解析函数名。
例如,假设有以下的test.cpp和test.h文件:
test.cpp:
```
#include <iostream>
using namespace std;
extern "C" {
void hello_world() {
cout << "Hello World!" << endl;
}
}
```
test.h:
```
#ifndef TEST_H
#define TEST_H
#ifdef __cplusplus
extern "C" {
#endif
void hello_world();
#ifdef __cplusplus
}
#endif
#endif // TEST_H
```
然后,可以编写以下的C代码并链接库文件:
main.c:
```
#include <stdio.h>
#include "test.h"
int main() {
hello_world();
return 0;
}
```
编译时需要使用g++编译器,并链接生成的库文件,命令如下:
```
g++ -c -o main.o main.c
g++ -o main main.o libtest.a
```
这样就可以在C程序中调用C++库函数了。
阅读全文