相关疑难解决方法(0)

g ++既是c ++编译器又是链接器?

我正在查看Eclipse中构建的输出.我正在为ColdFire处理器进行交叉编译.编译行看起来像这样:

m68k-elf-g++ -O2 -falign-functions=4 -IC:\nburn\include -IC:\nburn\MOD52...
Run Code Online (Sandbox Code Playgroud)

接着是更多的包含文件,明显的"编译器"标志,最后是我改变的一个源文件.下一行再次调用相同的工具:

m68k-elf-g++ src\main.o src\TouchPanelMediator.o src\Startup.o....
Run Code Online (Sandbox Code Playgroud)

接着是更多的.o文件,一些.ld文件和一些.a文件.这似乎是将所有各种类型的目标文件链接在一起.

在Gnu家族中,g ++是一些超级应用程序,可以根据参数确定是否需要编译或链接?它是否具有内置的功能,或者它只是调度编译到gcc并链接到ld而我的日志只是没有显示?

c++ gcc gnu g++ ld

18
推荐指数
2
解决办法
1万
查看次数

让我们分析"collect2:ld返回1退出状态"?

我知道这表明链接器问题,主要是未解析的符号.我知道要解决这个问题/摆脱那个错误消息,就必须提供更多的信息.我知道有很多关于解决这个问题的问题.

我的问题旨在帮助理解make和ld,找出什么(以及谁)试图用这条线表达什么.

collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
  • "collect2:"是什么意思?这是一个调用的步骤吗?我在我的系统上找不到具有该名称的可执行文件.
  • 这是否意味着我正在使用ld?我配置了我的项目/ Makefile,以便g ++应该进行链接,那么为什么LD仍然参与其中
  • 谁在写这个消息?做?ld?g ++?
  • 是否有可能的退出代码列表?

c++ makefile g++ ld

15
推荐指数
1
解决办法
2万
查看次数

有关gdb内存访问投诉的详细信息

我有一个使用as编译的目标文件(来自汇编程序代码).

如果我使用ld链接它,当我尝试stepi(或nexti)gdb抱怨地址0x0的内存访问.如果我使用gcc链接它,一切都很好.

我猜这个问题是由ld引起的,与gcc的链接结果相比,它产生的部分更少.

有没有办法配置gdb更冗长,所以我可以弄清楚可执行文件有什么问题?

(gdb) b main
Breakpoint 1 at 0x100000f8e
(gdb) r
Breakpoint 1, 0x0000000100000f8e in main ()
(gdb) x/10i $pc
0x100000f8e <main>: fbld   0x6c(%rip)        # 0x100001000 <data1>
0x100000f94 <main+6>: fimul  0x7a(%rip)        # 0x100001014 <data2>
0x100000f9a <main+12>: fbstp  0x60(%rip)        # 0x100001000 <data1>
0x100000fa0 <main+18>: mov0x0    $0x2000001,%rax
0x100000fa7 <main+25>: mov    $,%rdi
0x100000fae <main+32>: syscall 
(gdb) si
Cannot access memory at address 0x0
0x0000000100000f94 in main () …
Run Code Online (Sandbox Code Playgroud)

macos gdb gnu-assembler ld

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

gcc 参数:-pthread。它有什么作用?

我开始在 Debian 8 下使用 gcc 进行多线程编程。我已经成功编写并运行了一个多线程测试应用程序 (foobar.c),但我对 Makefile 感到困惑(从示例中复制)。特别是,有效的命令是

gcc foobar.c -o foobar -pthread
Run Code Online (Sandbox Code Playgroud)

我对“-pthread”感到困惑。就是它

(a) 值为“thread”的选项“-p”,或
(b) 参数“-pthread”?

如果是任何一种情况,它实际上在做什么?包括一些图书馆?包括一些对象?设置其他选项?

顺便说一句 - 一个类似的问题15929739被问到但从未得到回答。问题20924412也没有帮助。

multithreading gcc pthreads compiler-flags

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

标签 统计

ld ×3

c++ ×2

g++ ×2

gcc ×2

compiler-flags ×1

gdb ×1

gnu ×1

gnu-assembler ×1

macos ×1

makefile ×1

multithreading ×1

pthreads ×1