- 主题:问个 cmake 的写法
chatgpt的回答,供参考
您可以使用 cmake 的内置函数 check_cxx_compiler_flag,来检测编译器是否支持 -z noexecstack 这个参数,并在版本满足要求时加入该参数。
代码如下:
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-z noexecstack" NOEXECSTACK_SUPPORTED)
if (NOEXECSTACK_SUPPORTED)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack")
endif()
需要注意的是,不同版本的 gcc 可能有不同的支持情况,您可以通过编译器版本变量来进行版本判断,再加入参数。
【 在 hgoldfish 的大作中提到: 】
: 新版本 gcc 在链接的时候会有警告:
: warning: gf2m-elf-x86_64.S.o: missing .note.GNU-stack section implies executable stack
: 所以我之前在 cmake 里面加入了这行:
: ...................
--
FROM 8.219.174.*
不清楚啊,也可能有人问过这个问题,人工编辑一下
【 在 tgfbeta 的大作中提到: 】
: ChatGPT是不是扒过stackoverflow的库啊?
--
FROM 117.136.38.*
没事儿,长远看,人类可能只是土壤。
【 在 donkeymeat 的大作中提到: 】
: chatgpt 太强了,用得舒服。不过有可能为码友自掘坟墓了。
:
--
FROM 124.64.19.*
我觉得chatgpt很有意思,我甚至做了个梦,问它梦是啥意思。
【 在 donkeymeat 的大作中提到: 】
: chatgpt 太强了,用得舒服。不过有可能为码友自掘坟墓了。
:
--
FROM 124.64.19.*
居然今天才测试,晕
【 在 hgoldfish 的大作中提到: 】
: 牛逼!今天测试了这个答案,完全正确!
:
--
FROM 114.249.18.*