[問題] ld 連結 object file
我在閱讀一本書,裡面給一個靜態連結的範例
a.c:
extern int shared;
int main() {
int a = 100;
swap(&a, &shared);
return 0;
}
b.c:
int shared = 1;
void swap(int *a, int *b){
*a ^= *b ^= *a ^= *b;
}
編譯指令:
gcc -c a.c -fno-stack-protector
gcc -c b.c -fno-stack-protector
連結指令:
ld a.o b.o -e main -o ab
執行時:
./ab 出現 segmentation fault(core dump)
請問有人知道這甚麼狀況嗎? 謝謝
我GCC 版本 gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
ld 版本 GNU ld (GNU Binutils for Ubuntu) 2.34
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.72.192 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1612583983.A.86F.html
→
02/06 13:52,
3年前
, 1F
02/06 13:52, 1F
→
02/06 14:14,
3年前
, 2F
02/06 14:14, 2F
→
02/06 14:14,
3年前
, 3F
02/06 14:14, 3F
→
02/06 14:14,
3年前
, 4F
02/06 14:14, 4F
→
02/06 14:14,
3年前
, 5F
02/06 14:14, 5F
推
02/06 14:52,
3年前
, 6F
02/06 14:52, 6F
→
02/06 14:52,
3年前
, 7F
02/06 14:52, 7F
→
02/06 14:52,
3年前
, 8F
02/06 14:52, 8F
→
02/06 14:53,
3年前
, 9F
02/06 14:53, 9F
→
02/06 16:21,
3年前
, 10F
02/06 16:21, 10F
→
02/06 16:22,
3年前
, 11F
02/06 16:22, 11F
→
02/06 16:22,
3年前
, 12F
02/06 16:22, 12F
→
02/06 16:23,
3年前
, 13F
02/06 16:23, 13F
推
02/06 16:46,
3年前
, 14F
02/06 16:46, 14F
→
02/06 16:46,
3年前
, 15F
02/06 16:46, 15F
→
02/06 16:47,
3年前
, 16F
02/06 16:47, 16F
→
02/06 16:56,
3年前
, 17F
02/06 16:56, 17F
→
02/06 16:56,
3年前
, 18F
02/06 16:56, 18F
→
02/06 16:56,
3年前
, 19F
02/06 16:56, 19F
推
02/06 20:54,
3年前
, 20F
02/06 20:54, 20F
→
02/06 20:55,
3年前
, 21F
02/06 20:55, 21F
→
02/06 20:55,
3年前
, 22F
02/06 20:55, 22F
→
02/06 20:56,
3年前
, 23F
02/06 20:56, 23F
→
02/06 21:22,
3年前
, 24F
02/06 21:22, 24F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):