V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kgdb00  ›  全部回复第 1 页 / 共 6 页
回复总数  102
1  2  3  4  5  6  
2 天前
回复了 Sekai 创建的主题 宽带症候群 是我是我,扁平网线的受害者
#32 一插上就识别成百兆
2 天前
回复了 Sekai 创建的主题 宽带症候群 是我是我,扁平网线的受害者
借楼问一下,其他牌子有那种超细的 6 类线吗?
2 天前
回复了 Sekai 创建的主题 宽带症候群 是我是我,扁平网线的受害者
我买的网线几乎全都是山泽的,主要因为只有他们家有那种超细的网线,方便理线,不过质量是真的不行,我都买到过 3 跟有质量问题的细网线,都是导致千兆网络被识别成百兆,他们家的 7 类扁平网线我也买过,结果也把我坑大了,当时我用这根网线直连两台台式机的 2.5G 板载网卡,结果 dmesg 一直报各种网络异常的日志,我还以为是 linux 驱动的问题,排查了好久,最后换根网线解决问题。
@kgdb00 报的错如下:
ld: /lib64/libc.a(iofclose.o): in function `_IO_new_fclose.cold':
(.text.unlikely[.text.unlikely.group]+0x33): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(iofclose.o):(.data.rel.local.DW.ref.__gcc_personality_v0[DW.ref.__gcc_personality_v0]+0x0): undefined reference to `__gcc_personality_v0'
ld: /lib64/libc.a(iofflush.o): in function `_IO_fflush.cold':
(.text.unlikely[.text.unlikely.group]+0x32): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(wfileops.o): in function `_IO_wfile_underflow.cold':
(.text.unlikely[.text.unlikely.group]+0x3d): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(fileops.o): in function `_IO_new_file_underflow.cold':
(.text.unlikely[.text.unlikely.group]+0x33): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(printf_fp.o): in function `__printf_fp_l':
(.text+0x53f): undefined reference to `__unordtf2'
ld: (.text+0x585): undefined reference to `__unordtf2'
ld: (.text+0x5ab): undefined reference to `__letf2'
ld: /lib64/libc.a(printf_fphex.o): in function `__printf_fphex':
(.text+0xa6): undefined reference to `__unordtf2'
ld: (.text+0xd9): undefined reference to `__unordtf2'
ld: (.text+0xf6): undefined reference to `__letf2'
ld: /lib64/libc.a(iofputs.o): in function `_IO_fputs.cold':
(.text.unlikely[.text.unlikely.group]+0x32): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(iofwrite.o): in function `_IO_fwrite.cold':
(.text.unlikely[.text.unlikely.group]+0x32): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(iogetdelim.o): in function `__getdelim.cold':
(.text.unlikely[.text.unlikely.group]+0x32): undefined reference to `_Unwind_Resume'
ld: /lib64/libc.a(pthread_once.o): in function `__pthread_once_slow.cold':
(.text.unlikely[.text.unlikely.group]+0x25): undefined reference to `_Unwind_Resume'
@lcdtyph 试了,不行,和没加这两个参数效果一样,去掉 /usr/lib/gcc/x86_64-redhat-linux/11/libgcc.a 和 /usr/lib/gcc/x86_64-redhat-linux/11/libgcc_eh.a 后报的错一样。
@kgdb00 #5 "-m elf_x86_64 -static"这两个参数也不是必要的,以下命令就能完全静态链接一个 hello world 的 c 程序。

ld /usr/lib64/crt1.o /usr/lib64/crti.o main.o \
--start-group \
/lib64/libc.a \
/usr/lib/gcc/x86_64-redhat-linux/11/libgcc.a \
/usr/lib/gcc/x86_64-redhat-linux/11/libgcc_eh.a \
--end-group \
/usr/lib64/crtn.o
@secondwtq
对,以下是精简过的 gcc 传给 ld 的参数,这条命令可以链接成功,不过我不想依赖 libgcc.a 和 libgcc_eh.a 这两个库,但去掉就链接不通过,难道 gnu c 库静态链接非得和编译器的库绑定在一起? 动态链接的时候是不需要 gcc 的库的。

/bin/ld -m elf_x86_64 -static /usr/lib64/crt1.o /usr/lib64/crti.o main.o \
--start-group \
/lib64/libc.a \
/usr/lib/gcc/x86_64-redhat-linux/11/libgcc.a \
/usr/lib/gcc/x86_64-redhat-linux/11/libgcc_eh.a \
--end-group \
/usr/lib64/crtn.o
@ysc3839 可以静态链接的,fedora 上有一个 glibc-static 包,这个包有一个 /usr/lib64/libc.a 文件,就是 glibc 的静态库
ld 能静态链接一个普通的用户库,比如 foo.o 或 libfoo.a ,我想知道的是如何静态链接 gnu c 库。
我估计贵公司主要的业务是给大客户做定制的产品,就是不知道贵公司定制的产品是笔记本或平板电脑形态,还是 Raspberry Pi 这种需要外接显示器的形态?
如果是后者,那我觉得挺尴尬的,因为这样用就失去了便携性,对于需要批量低成本设备的客户,还不如用云桌面,反正都是固定在一个地方使用,用 windows 软件生态还会更好一些,而且 windows 又不是不付费就没法用。
13 天前
回复了 MakeItGreat 创建的主题 硬件 主要用于虚拟化的装机求各位指导
@HamGuy 我都不用 exsi
16 天前
回复了 loy23 创建的主题 程序员 聊聊 esxi 和 pve 家用场景哪个更有优势
@geekvcn lxc 也能直通显卡吗?那是不是也可以直通 usb ,然后当作做桌面机来用?希望老哥给发个教程
@hhjuteman 我就用 C/C++ GNU Global 插件得了,不折腾了。
@hhjuteman clangd 插件试了一下,发现了一个很严重的 bug ,我有多个内核的源码目录,checkout 不同的版本,结果跳转时会跳转到其他内核目录的对应文件。
而且还不能关闭语法检查,一大堆报错看着难受。
而且这个插件使用人数太少,估计还有不少其他 bug 。
@hhjuteman 感谢回复!

试了一下这个 C/C++ GNU Global 插件,感觉没什么问题,不过在我的配置下编译内核所需的源码文件只有一千多个,
如果有个办法能让微软官方的这个 "C/C++" 插件根据特定的文件列表来生产索引,各方面性能应该也是满足的。
没人回复,自己顶一下
我的 c_cpp_properties.json 文件的配置如下:

{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/include/"
],
"defines": [],
"compilerPath": "/usr/lib64/ccache/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/compile_commands.json"
}
],
"version": 4
}

不知道是不是我配置错误所以才没有生效。
@skimplus 再请教一下老哥,

我给 linux 内核源码树创建了 compile_commands.json 文件,只包含 1730 个源代码文件,c_cpp_properties.json 配置如下,但好像 compileCommands 没有生效,ms-vscode.cpptools-1.7.1/bin/cpptools 这个程序一直在生成 tag 文件,cpu 100%运行了一个小时,输出的文件都 2 个 GB 了,还没完成,是我哪里设置的不对吗?

{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/include/"
],
"defines": [],
"compilerPath": "/usr/lib64/ccache/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++17",
"intelliSenseMode": "linux-gcc-x64",
"compileCommands": "${workspaceFolder}/compile_commands.json"
}
],
"version": 4
}
{
"arguments": [
"/usr/lib64/ccache/gcc",
"-c",
"-Wp,-MD,./.builtin-stop.o.d",
"-Wp,-MT,builtin-stop.o",
"-DCONFIG_GUEST_INIT",
"-DCONFIG_GUEST_PRE_INIT",
"-DCONFIG_X86_64",
"-DCONFIG_X86",
"-D_FILE_OFFSET_BITS=64",
"-D_GNU_SOURCE",
"-DKVMTOOLS_VERSION=\"\"",
"-DBUILD_ARCH=\"x86\"",
"-Iinclude",
"-Ix86/include",
"-O2",
"-fno-strict-aliasing",
"-g",
"-Wall",
"-Wformat=2",
"-Winit-self",
"-Wmissing-declarations",
"-Wmissing-prototypes",
"-Wnested-externs",
"-Wno-system-headers",
"-Wold-style-definition",
"-Wredundant-decls",
"-Wsign-compare",
"-Wstrict-prototypes",
"-Wundef",
"-Wvolatile-register-var",
"-Wwrite-strings",
"-Wno-format-nonliteral",
"-Werror",
"-DCONFIG_HAS_ZLIB",
"-o",
"builtin-stop.o",
"builtin-stop.c"
],
"directory": "/a/source/kvmtool",
"file": "/a/source/kvmtool/builtin-stop.c",
"output": "/a/source/kvmtool/builtin-stop.o"
},
每个文件都是这么一大坨 json
1  2  3  4  5  6  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3614 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 01:24 · PVG 09:24 · LAX 17:24 · JFK 20:24
♥ Do have faith in what you're doing.