makefile经验积累

混编.c与.cpp

通常是在C++项目引用了纯C语言的接口,需要extern "C"包含C语言接口头文件,且没有C语言库的情况下。这时候c的接口编译需要用gcc,而不是笼统的用g++来编译。
参考添加链接描述

relocation R_X86_64_32 against `.rodata’ can not be used when making a PIE object; recompile with -fPI

具体原理暂不清楚,但可以在报错编译的项目后添加 --no-pie
在这里插入图片描述

/usr/lib/gcc/x86_64-linux-gnu/7/…/…/…/x86_64-linux-gnu/Scrt1.o: In function ‘_start’.text+0x20): undefined reference to `main’

暂时猜测是编译语句写的不对或不准确,导致编译语句链接的.o文件中缺少main函数makefile经验积累_第1张图片
修改后在这里插入图片描述

你可能感兴趣的:(c,c++)