相关疑难解决方法(0)

如何在OS X上进行静态链接

我正在尝试链接到OS X上的静态库.我-static在gcc命令中使用了该标志,但是我收到以下错误消息:

ld_classic: can't locate file for: -lcrt0.o
collect2: ld returned 1 exit status

我查看了手册页,它的内容如下:

除非所有库(包括libgcc.a)都已使用-static编译,否则此选项在Mac OS X上不起作用.由于既没有提供libSystem.dylib的静态版本也没有提供crt0.o,因此该选项对大多数人没用.

有没有其他方法可以链接到这个静态库?

macos linker static-libraries

51
推荐指数
4
解决办法
3万
查看次数

(.eh)在nm输出中的含义是什么?

当我查看我的库中的符号时nm mylib.a,我看到一些重复的条目,如下所示:

000000000002d130 S __ZN7quadmat11SpAddLeavesC1EPNS_14BlockContainerEPy
00000000000628a8 S __ZN7quadmat11SpAddLeavesC1EPNS_14BlockContainerEPy.eh
Run Code Online (Sandbox Code Playgroud)

通过管道输送c++filt:

000000000002d130 S quadmat::SpAddLeaves::SpAddLeaves(quadmat::BlockContainer*, unsigned long long*)
00000000000628a8 S quadmat::SpAddLeaves::SpAddLeaves(quadmat::BlockContainer*, unsigned long long*) (.eh)
Run Code Online (Sandbox Code Playgroud)

.eh意味着什么,这个额外符号用于什么?

我发现它与异常处理有关.但为什么这会使用额外的符号?

(我用clang注意到这一点)

c++ symbol-table nm

6
推荐指数
1
解决办法
625
查看次数

标签 统计

c++ ×1

linker ×1

macos ×1

nm ×1

static-libraries ×1

symbol-table ×1