Code::Blocks中用C语言编译代码报ld.exe找不到-lbgi的问题求助
Code::Blocks 编译报ld.exe无法找到-lbgi的排查步骤
- 核对libbgi.a的实际存放路径:带MinGW组件的正式版Code::Blocks,链接器默认的静态库搜索路径是安装目录下嵌套的
MinGW\lib文件夹,而非安装根目录下的lib文件夹。多数配置教程的路径指引有误,会让用户直接把libbgi.a丢到根目录lib下,实际链接器完全不会扫描该路径。只要把libbgi.a移动到CodeBlocks安装目录\MinGW\lib下,就不需要手动在链接库列表填写带盘符的绝对路径。 - 修正头文件的存放位置:和库文件的路径逻辑保持一致,把之前拷贝到根目录include下的
graphics.h、winbgim.h,同步移动到CodeBlocks安装目录\MinGW\include文件夹下,避免编译阶段触发头文件找不到的连锁错误。 - 调整链接参数的填写位置:不要把
-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32所有参数全部堆在「其他链接器设置」栏。正确操作是把lbgi作为独立条目添加到左侧的链接库列表中,和其他系统依赖库并排;剩下的-lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32可以保留在其他链接器设置栏,避免参数读取顺序错误导致链接器定位不到lbgi库。 - 校验编译器与库的架构匹配:确认全局编译器设置中选中的是「MinGW GCC」,不要选择其他编译器选项;64位系统下需使用和编译器位数匹配的libbgi.a文件,32位旧版库搭配64位编译器时,即使路径完全正确,也会触发同类找不到库的报错。
内容的提问来源于stack exchange,提问作者Ab Bc
相关产品推荐
相关产品推荐

