MYSYS2 GCC 静态链接错误:主要:找不到链接器输入文件:没有这样的文件或目录

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

我正在尝试在 Windows 上使用 MYSYS2 GCC 11.2.0 在某个位置静态链接库。

这是我的 makefile:(从 M.M 编辑 1 和 n.1.8e9-where's-my-share m。)

#changed .o to .so, ty  "n. 1.8e9-where's-my-share m."
libmxn_external_test.so: mxn_external_test.h mxn_external_test.c
    gcc -o libmxn_external_test.so -fpic -shared mxn_external_test.h mxn_external_test.c

#changed .o to .so
libmxn_external_test.a: libmxn_external_test.so
    ar rcs C:\libs\c\libmxn_external_test.a libmxn_external_test.so -v

#changed main to main.c, ty "M.M"
main.o: main.c
    gcc -c main.c

main: main.o
    gcc main.o -LC:\libs\c -lmxn_external_test -o main

#this kinda works but after graduating with a CS degree, and a few hours of make videos, haven't figured out much more yet
quick: main.o libmxn_external_test.so
    gcc -o main main.o libmxn_external_test.o
    
clean:
    rm libmxn_external_test.h.gch libmxn_external_test.so main.o

我在运行“make main”时收到此错误:

    PS C:\Users\U53R\Desktop\workflow\coding\c\c\projects\PRACTICE\ExternalLibrary> gcc main.o -LC:\libs\c -lmxn_external_test -o main                                                          C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find main.o: No such file or directory
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o): in function `atexit':
C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtdll.c:205: multiple definition of `atexit'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:418: first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):cygming-crtbeg:(.text+0x380): multiple definition of `__gcc_register_frame'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/crtbegin.o:cygming-crtbeg:(.text+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):cygming-crtbeg:(.text+0x390): multiple definition of `__gcc_deregister_frame'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/crtbegin.o:cygming-crtbeg:(.text+0x10): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x5f0): multiple definition of `.refptr.__native_startup_state'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__native_startup_state[.refptr.__native_startup_state]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):crtdll.c:(.data+0x0): multiple definition of `__mingw_module_is_dll'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:422: first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x5c0): multiple definition of `.refptr.__mingw_app_type'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__mingw_app_type[.refptr.__mingw_app_type]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x630): multiple definition of `.refptr.__xi_a'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__xi_a[.refptr.__xi_a]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x5e0): multiple definition of `.refptr.__native_startup_lock'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__native_startup_lock[.refptr.__native_startup_lock]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x5a0): multiple definition of `.refptr.__dyn_tls_init_callback'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__dyn_tls_init_callback[.refptr.__dyn_tls_init_callback]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x5b0): multiple definition of `.refptr.__image_base__'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__image_base__[.refptr.__image_base__]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x610): multiple definition of `.refptr.__xc_a'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__xc_a[.refptr.__xc_a]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x640): multiple definition of `.refptr.__xi_z'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__xi_z[.refptr.__xi_z]+0x0): first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\libs\c/libmxn_external_test.a(libmxn_external_test.o):misc.c:(.rdata+0x620): multiple definition of `.refptr.__xc_z'; C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o:crtexe.c:(.rdata$.refptr.__xc_z[.refptr.__xc_z]+0x0): first defined here
collect2.exe: error: ld returned 1 exit status

我从中注意到的两件事是: Windows C:\lib 的“错误”斜杠类型

c gcc makefile linker mingw-w64
© www.soinside.com 2019 - 2024. All rights reserved.