1. LDFLAGS += -Wl,-z,relro,-z,now 这个是为了防止内存越界,一旦越界,就会segmentation fault(这个是连接参数)
2. -fstack-protector:开启栈保护检测,防止缓冲区异常
-fPIC:生成位置无关的代码,适用于动态链接
-fPIE:为可执行文件生成位置无关代码
-fpie 主要影响编译过程中代码的位置无关性生成,而 -pie 则确保最终生成的可执行文件具有位置无关的特性,两者共同作用,使得程序更加安全、灵活,并提高了与不同平台兼容性
也就是说-fpie 是编译参数, 而-pie 是连接参数 。