新版本 gcc 在链接的时候会有警告:
warning: gf2m-elf-x86_64.S.o: missing .note.GNU-stack section implies executable stack
所以我之前在 cmake 里面加入了这行:
if (MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
else()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack")
endif()
也就是加入 -z noexecstack 就可以解决这个警告。
但问题又来了,旧版本的 gcc 不支持这个参数啊。在 cmake 里面要怎么判断是 gcc 编译器,并且高于某个版本,才启用这个参数呢?
--
FROM 183.253.147.*