所以,我有一个命令来编译这个实验。它看起来像这样。
"F:\Software-Development\mingw32\bin\gcc.exe" "F:\Software-Development\Sources\experiment\source\main.c" -L "F:\Software-Development\Sources\experiment\objects\" -Wall -o "F:\Software-Development\Sources\experiment\~build\EXP" -lSDL2
main.c只是一个来自拉齐福的稍微修改的教程,所以它应该在纯C中工作,尽管我实际上不能测试它。如果由于任何原因需要实际的源代码,我确实有一个测试包,我组装了这里。它可能不能工作,但同样,不能测试它的错误。请不要告诉我代码中可能出现的错误,除非它实际上与此错误相关.
对象是存储我的.a文件的地方。然而,由于一些令人费解的原因,每当我执行此命令时,它都会抛出一个错误。不是cannot find -lSDL2: No such file or directory错误,而是undefined reference to `SDL_X'错误。
这对我来说毫无意义,.a文件就在那里,我不知道发生了什么。我唯一的线索是,删除-L会引发cannot find -lSDL2错误,而修改-L参数中的内容几乎没有任何变化。我向其他地方寻求帮助,我环顾四周的问题,似乎我已经离开了,但要求堆栈溢出的东西,可能真的是微不足道的。
发布于 2022-09-25 23:37:32
所以我发现了原因。这是绝对荒谬的,但明华GCC的编译似乎没有正确地解释-L。纠正此错误的唯一解决方案是删除-L dir标志并将.a文件放入mingX\lib文件夹。
https://stackoverflow.com/questions/73839986
复制相似问题