我在让MinGW识别CSFML库方面遇到了一些麻烦。我不得不使用链接器手动链接每个库。现在我没有从简单的gcc调用中自动链接的标准库。
bbroo@DESKTOP-1F1J3SM ~/Shaders
$ ld shaders.o libcsfml-system.a libcsfml-window.a libcsfml-graphics.a csfml-system-2.dll csfml-window-2.dll csfml-graphics-2.dll
shaders.o:shaders.c:(.text+0x10): undefined reference to `__main'
shaders.o:shaders.c:(.text+0x4bc): undefined reference to `sleep'
MinGW中标准库的名称是什么?如何在LD中链接到它?
我知道这不回答这个问题,但是用这个方法进行编译:
gcc shaders.c libcsfml-system.a libcsfml-window.a libcsfml-graphics.a csfml-system-2.dll csfml-window-2.dll csfml-graphics-2.dll
答案 0 :(得分:1)
使用' ld'在不明显。由于gcc成功编译了您的项目,您可以直接使用' ld'重现链接阶段。执行以下步骤。
以下是成功链接简单测试程序的示例命令行:
ld -Lc:\MinGW\lib\gcc\mingw32\5.3.0 -Lc:\MinGW\lib -o test.exe crt2.o crtbegin.o test.o -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lgcc_eh -lmoldname -lmingwex -lmsvcrt crtend.o
您可能需要检查路径,将* .o文件复制到您的文件夹或添加路径并添加库。