V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  amiwrong123  ›  全部回复第 1 页 / 共 44 页
回复总数  875
1  2  3  4  5  6  7  8  9  10 ... 44  
@heiher #4
我是查看的 RISCV 的 Machine-Dependent Options 里面,我看里面只有-mcmodel=medlow 和-mcmodel=medany 啊?
@ssr94cup #7
就是没有想到 固定方式,还是用你的那种方式吧。
@Rennen #15
@docx #7
好的,我看 PayPal 还区分 国内版 PayPal 和国际版 PayPal ,是不是 买 vps 的场景,用国内版 PayPal 就可以了。

PS:而且貌似,我只能去 注册为 国内版 PayPal 的
@ssr94cup #4
算了,还是不靠谱的。因为没法固定。而且效果不一定有 风扇对着吹 好。
@ssr94cup #4
老哥,有人提到,可以用这种 m.2 散热器 加到 散热马甲上,这玩意加上去,那不比 小风扇 给力多了

![]( https://s3.bmp.ovh/imgs/2025/03/06/22aabdecc1665590.png)
@mahaoqu #10
是的,我决定使用 gcc 了。ld 感觉是要底层一点,有些东西还是让 gcc 帮我处理吧。

门道确实不少,我刚才自己对比了, 各种情况下的 mapfile(-Map 参数)发现里面找到的 libxxx.a 的 名字和路径 都不一样。而且这个 mapfile 内容很多,我只看了一点点,后面有空再慢慢研究了。
先介绍下背景:不管是用 ld 还是 gcc ,都有这些参数-nostartfiles -nostdlib -static --start-group -lnosys -specs=nosys.specs -specs=nano.specs -lgcc -lc --end-group -gc-sections
-----------
这段话修正一下:
如果是 ld ,则携带-nostartfiles -nostdlib -static --start-group -lnosy -lgcc -lc --end-group -gc-sections
如果是 gcc ,则携带-nostartfiles -nostdlib -static --start-group -lnosys -specs=nosys.specs -specs=nano.specs -lgcc -lc --end-group -gc-sections
@diivL #1
@mahaoqu #2
@seers #3
@sir283 #4

感觉之前的回答啦,现在又遇到了一个问题:

先介绍下背景:不管是用 ld 还是 gcc ,都有这些参数-nostartfiles -nostdlib -static --start-group -lnosys -specs=nosys.specs -specs=nano.specs -lgcc -lc --end-group -gc-sections

首先还是用 ld 来进行编译,编译能够完成,但会报一些链接器的警告( https://stackoverflow.com/questions/73742774/gcc-arm-none-eabi-11-3-is-not-implemented-and-will-always-fail 类似这个链接里的报的警告):
warning: _close is not implemented and will always fail ,还有_fstat _getpid _satty _kill _lseek _read _write 。
然后我又去查看了反汇编,发现里面有了一些我不想要的东西,居然还有什么 raise 函数、raise_r 函数的代码,还有一些其他的函数的代码,即使我都没有进行调用的。而且吧,我是加了-gc-sections ,居然还是没有 gc 掉。

然后我换成 gcc 来编译,还是携带相同的参数,ld 的参数,我就用,Wl 来传递。还是发现会报这些警告。
PS:我发现 gcc 有一个方便的地方,就是不像 ld 必须要使用-L 参数指定搜索库的路径。gcc 可以不指定这些路径,它自己会去找。

最终,我使用 gcc 并携带了--specs=nosys.specs --specs=nano.specs ,发现终于不报这些警告了。而且查看 dis 文件,发现也干净了很多,没有 raise 函数(以及其他的乱七八糟没用到的函数)的汇编在里面了。但是呢,却发现多了一些奇怪的 section (从 dis 文件里看):.bss.__malloc_free_list .bss.__malloc_sbrk_start .bss.errno .bss.__lock__malloc_recursive_mutex

最终,我因为不想看到这些烦人的警告,还是选择了这个命令
gcc -nostartfiles -nostdlib -static -Wl,--start-group -lnosys -specs=nosys.specs -specs=nano.specs -lgcc -lc -Wl,--end-group -Wl,-gc-sections

但上面这些现象的原因我还是很懵,各位大佬有空可以帮忙看看。现在我先解决问题,后面我也研究研究。
@opengps #16
这已经 这个小县城的 最大的营业厅了。
@lonjin #13
这。。退个宽带,还得认识人才能解决了呗。。
@diivL #1
@mahaoqu #2
@seers #3
@sir283 #4
各位大佬,又遇到了一个奇怪的问题。还是我帖子说的这种场景,我用 ld 编译的时候,会报错奇怪的 undefined reference to 。
https://blog.csdn.net/qq_24341965/article/details/73928434

我根据这篇博客的灵感,我就 调整命令参数之间的顺序,发现了如下规律:
- $(OBJECTS)是 Makefile 变量,是多个 o 文件空格隔开
- ld 命令后,如果是$(OBJECTS) --start-group -lnosys -lc -lgcc --end-group ,就不会报错 undefined reference to
- ld 命令后,如果是--start-group -lnosys -lc -lgcc --end-group $(OBJECTS),就会报错 undefined reference to

ld 命令当然还有其他参数,但其他的都不影响报错,我就忽略了。

虽然问题已经解决了,但是还是感觉不可思议,可以解下惑吗
@dx123 #8
离谱,可能整个县城,就我们在 注销宽带,然后还需要排队。。
@lonjin #2
小县城的人 真霸道啊
好了,10086 和工信部 都已经投诉了。
@liu731 #1
@lonjin #2
@mywaiting #3
@hfJ433 #4
@olaloong #5
依据《电信用户申诉处理办法》的规定:"用户对电信业务经营者的处理结果不满意或者电信业务经营者在接到投诉后 15 日内未答复的,可以向申诉受理机构提出申诉。”由于企业在 15 日内尚未做出最终答复,请您先等候企业的投诉处理结果,如您对投诉处理结果不满意再提交申诉材料。

现在还挺恶心,要 先给企业投诉过 超过 15 天,才可以吗。。
@olaloong #5
好的,先 10086 投诉,再工信部投诉。
@liu731 #1
@lonjin #2
@mywaiting #3
@hfJ433 #4
好的,马上投诉
@liyafe1997 #8
使用 HDTune ,不带快速扫描得进行扫描,发现了 很多坏块。

没想到,买个新的固态,居然翻车了。
15 天前
回复了 amiwrong123 创建的主题 硬件 关于 X99 主板的一些疑问,求大佬解答
@CodeAllen #2
对了请教下,对于内存条电压来说,是不是 x99 主板,都最好上标准电压的服务器条子。DDR4 内存标准电压为 1.2V(DDR3 为 1.5V)。

那么,d3 ,就最好 1.5V 的; d5 ,就最好 1.2V 的。是这样的吗?
@tangmanger #10
Rufus 烧录镜像进 优盘,算 最原始的方法吗
1  2  3  4  5  6  7  8  9  10 ... 44  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2870 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 12:06 · PVG 20:06 · LAX 05:06 · JFK 08:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.