[英]Makefile C++11 - Compiling to static library
I am trying to compile my source files to a static library, however, it doesn't seem to want to work. 我正在尝试将我的源文件编译为静态库,但是,它似乎不起作用。 Here is the code:
这是代码:
#-----------------------------------------------------------------------------
# Usage of make file
#-----------------------------------------------------------------------------
# Clean operation:
# make -f MakeClient clean
#
# Make operation:
# make -f MakeClient
#
#
#OBJ = $(SRC:.cpp=.o)
OBJ_DIR = ./obj
OUT_DIR= ../lib
OUT_FILE_NAME = libclient.a
# include directories
INCLUDES=-I. -I../common -I../../depends -I../../depends/zlib
# C++ compiler flags (-g -O2 -Wall)
CXXFLAGS := -Wall -Wextra -pedantic-errors -std+c++0x
# compiler
CCC = g++
# Enumerating of every *.cpp as *.o and using that as dependency
$(OUT_FILE_NAME): $(patsubst %.cpp,$(OBJ_DIR)/%.o,$(wildcard *.cpp))
$(CCC) -o $(OUT_DIR)/$@ $^ -static $(LIB_DIR) $(LIBS) -std=c++11
#Compiling every *.cpp to *.o
$(OBJ_DIR)/%.o: %.cpp dircreation
$(CCC) -c $(INCLUDES) $(CCFLAGS) -o $@ $<
dircreation:
@mkdir -p $(OUT_DIR)
@mkdir -p $(OBJ_DIR)
.PHONY : clean
clean:
rm -f $(OBJ_DIR)/*.o $(OUT_DIR)/$(OUT_FILE_NAME) Makefile.bak
The problem seems to be recognising that I'm using C++11 since the actual code does not compile. 问题似乎是在认识到我正在使用C ++ 11,因为实际的代码无法编译。
Any ideas? 有任何想法吗?
Replace CCFLAGS
with CXXFLAGS
, or vice versa. 将
CCFLAGS
替换为CXXFLAGS
,反之亦然。
And the flag is spelled -std=c++0x
(thanks, @Pixelchemist). 并且该标志的拼写为
-std=c++0x
(感谢@Pixelchemist)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.