C:gcc 返回“多重定义”错误,但 msvc - 不返回

问题描述 投票:0回答:0

我这里有一个小程序:

// header.h
#pragma once
int a;
int reta();

// extra.c
#include "header.h"
int reta() {
    return a;
}

// main.c
#include "header.h"
#include <stdio.h>
int main(void) {
    printf("%d, %d", a, reta());
}

使用 Visual Studio 编译时的结果(C 标准:c17,调试 x64):

0, 0

使用GCC编译时的结果(gcc -L. -o test.exe *.c -std=c17 -mwindows -Wl,-subsystem,console):

C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe : C:...\Tem

c windows gcc visual-c++ linker-errors
© www.soinside.com 2019 - 2024. All rights reserved.