gpt4 book ai didi

c++ - 有没有一种简单的方法可以让 gcc 省略 crtbegin.o/crtend.o?

转载 作者:IT老高 更新时间:2023-10-28 23:18:33 27 4
gpt4 key购买 nike

除了使用 -nostdlib 和自己链接 crt1.o -lc -lgcc 之外,还有什么简单的方法可以防止 gcc 链接 crtbegin[S] .ocrtend[S].o?这些文件不是那么大,但我正在制作小型二进制文件,并且想删除 C 程序不需要的无用 C++ 支持代码。 (假设 gcc 甚至为 C 程序链接它们,以防您使用具有全局对象变量的 C++ 库。我会让每个人都不会提示它应该如何在引用全局对象的任何地方生成安全的一次性初始化调用C++ 模块,而不是在 main...)

之前初始化全局对象

我不反对破解 gcc specs 文件以使 C++ 支持文件的链接以某某为条件,但我不确定该怎么做。也许已经有一个不错的方法?

最佳答案

gcc -wrapper sh,-c,'z= ; for i ; do [ "$z" ] || set -- ; z=1 ;
case "$i" in *crtbegin*.o|*crtend*.o) ;; *) set -- "$@" "$i" ;; esac ;
done ; exec "$0" "$@"'

关于c++ - 有没有一种简单的方法可以让 gcc 省略 crtbegin.o/crtend.o?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com