最近在做语音识别相关,发现这个领域大部分代码都是C++和C都混编都工程,研究了下混编方式,写下记录过程
cust@virtualbox:~/alsa_test$ ls
alsa libasound.so libasound.so.2 libasound.so.2.0.0 main.cpp Makefile test_one.c test_one.h
main文件使用cpp结尾,test_one采用c结尾,如何混编呢?很简单,增加头文件,并在头文件里用一个宏!!
test_one.h内容
#ifndef __TEST_ONE_H__
#define __TEST_ONE_H__
#ifdef __cplusplus
extern "C"
{
#endif
extern int test_one();
#ifdef __cplusplus
}
#endif
#endif
main.cpp内容
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "alsa/asoundlib.h"
#include "test_one.h"
int main(int argc, char *argv[])
{
test_one();
}
Makefile内容
PROJECT_DIR := $(shell pwd)
TARGET = test
CC := /mcuzone/work/buildroot/output/rockchip_rk3308_release/host/usr/bin/aarch64-rockchip-linux-gnu-gcc
C