我正在尝试创建一个包含C和C ++函数的静态库,然后在C环境中使用该库。根据{{3}},我将C函数包装在C ++函数周围。
库的makefile使用“ar -rvs libNAMEX.a $(OBJECTS)”,其中OBJECTS包含由gcc或g ++编译的目标文件,具体取决于类型(GCC版本4.4.1)。
构建库时我没有遇到任何错误。但是当我尝试编译一个使用该库的C文件(使用交叉编译版本的GCC 4.5.1):“gcc -L [PATH TO libNAMEX.a] -lNAMEX ... c_source.c”时,它给出了我与C ++扩展相关的错误(即“未定义引用operator new(unsigned long)", "undefined reference to
std :: allocator :: ~addocation()'”)。
有没有解决这个问题的方法?
答案 0 :(得分:3)
使用g ++作为链接器:
gcc my_c_file.c -c
g++ my_c_file.o -L blabla -lblabla