首页 > 解决方案 > 尽管包含和 lib 规范 g++ 找不到库

问题描述

我试图构建我的 sfml 程序,所以我写了这个 makefile:

SFML = /usr/local/Cellar/sfml/2.5.1_1
JSONCPP =  /usr/local/Cellar/jsoncpp/1.9.4_1
INCFOLDER = -I ${SFML}/include -I ${JSONCPP}/include
LIBFOLDER = -L ${SFML}/lib -L ${JSONCPP}/lib
CC = g++ 
STD = -std=c++11
ALIAS =  -o sfml

LIBS =  -l libsfml-audio.2.5.1.dylib -l libsfml-graphics.2.5.1.dylib  -l libsfml-network.2.5.1.dylib -llibsfml-system.2.5.1.dylib  -l libsfml-window.2.5.1.dylib 
LIBS+= -l jsoncpp.24.dylib
MAIN = main.cpp

exe:
    ${CC} ${MAIN} ${INCFOLDER} ${LIBFOLDER} ${LIBS} ${ALIAS} ${STD}

我在 mac 上,我通过 brew 安装了这些库,所以它们安装在 /usr/local/cellar 中。
我用 -I 指定了包含文件夹,用 -L 指定了 lib 文件夹,然后是我将其名称复制粘贴到位的单个库。
这个make文件有什么问题?我无法理解......
这是错误:

g++  main.cpp -I /usr/local/Cellar/sfml/2.5.1_1/include -I 

/usr/local/Cellar/jsoncpp/1.9.4_1/include -L /usr/local/Cellar/sfml/2.5.1_1/lib -L /usr/local/Cellar/jsoncpp/1.9.4_1/lib -l libsfml-audio.2.5.1.dylib -l libsfml-graphics.2.5.1.dylib  -l libsfml-network.2.5.1.dylib -llibsfml-system.2.5.1.dylib  -l libsfml-window.2.5.1.dylib  -l jsoncpp.24.dylib -o sfml -std=c++11
ld: library not found for -llibsfml-audio.2.5.1.dylib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [exe] Error 1

标签: makefilecompilationg++

解决方案


推荐阅读