c++ - Makefile 找不到库

标签 c++ gcc makefile g++ linker-errors

我正在尝试为我的项目编写 Makefile。 这是文件结构:

enter image description here

生成文件:

CXXFLAGS = -ISDL2/include -std=c++11
LXXFLAGS = -lSDL2/lib/x86 -lSDL2main -lSDL2 -lSDL2_image

main.exe: main.o BoardField.o ChessPiece.o Game.o
    g++ main.o BoardField.o ChessPiece.o Game.o -o main.exe $(LXXFLAGS) -std=c++11

main.o: main.cpp 
    g++ main.cpp -c $(CXXFLAGS)

BoardField.o: BoardField.cpp 
    g++ BoardField.cpp -c $(CXXFLAGS) 

ChessPiece.o: ChessPiece.cpp 
    g++ ChessPiece.cpp -c $(CXXFLAGS) 

Game.o: Game.cpp 
    g++ Game.cpp -c $(CXXFLAGS)  

我得到了这些错误:

g++ main.o BoardField.o ChessPiece.o Game.o -o main.exe -lSDL2/lib/x86 -lSDL2main -lSDL2 -lSDL2_image -std=c++11 c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2/lib/x86 c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2main c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2 c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL2_image

问题出在哪里?

最佳答案

-lSDL2/lib/x86 不正确。您使用小写的 -l 选项,它用于添加要链接的,而不是搜索库的路径。

要添加路径,请使用大写的 -L 选项:-LSDL2/lib/x86

关于c++ - Makefile 找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272571/

相关文章:

c++ - 在 std::move() 之后 unique_ptr 会发生什么?

c++ - 这个循环如何使我的程序崩溃?

c - 为什么我的函数会产生冲突类型错误?

perl编译: 'Too many levels of symbolic links'

android - Android OpenCV共享库构建错误

c++ - c++ Boost循环遍历模型的维度::点

c++ - Json cpp asCstring() 存储在变量中时返回空 cstring

c - 为什么 GCC 在不需要时生成堆栈保存指令?

gcc - gcc 命令中 -fsyntax-only 选项的用途是什么?

linux - 在初始 ram 文件系统上从源安装包