C/C++混合编译
在c++代码中调用了c语言的库,如果编译报错,可以加上:
extern "C" {
// C code
}
这样可以解决一些C++不兼容C语言的问题。
链接
如果编译时调用了一些动态库,但是又需要交叉编译将程序在其他设备上运行。
可以新创建一个lib目录,将动态库放入其中,然后再编译时加上-L <lib目录> -l<库名>
,以及-Wl,-rpath=<lib目录> -L<lib目录>
例如:
g++ -g -o ./bin/a ./obj/* -Wl,-rpath=../lib -Llib -lSDL_gfx
前者可以告诉编译器编译的时候在lib目录里面找动态库。后者告诉程序在运行的时候从lib目录中寻找动态库。
.c文件可以编译好后和.cpp文件一起链接。
制作静态库
ar rcs lib<库名>.a *.o