我写了一个小的makefile,它遵循一般结构,创建目标文件,然后链接创建一个可执行文件。下面是它的外观..编译目标文件时出现g ++错误
CXX=g++
CXXFLAGS=-Wall -g
INCLUDES= -I ./
LDFLAGS= -L ./
LIBS= -lcryptopp
SRCS= test.cpp
OBJS= $(SRCS:.cpp=.o)
EXEC=test
all: $(EXEC)
$(EXEC): $(OBJS)
$(CXX) $(CXXFLAGS) $(INCLUDES) -o $(EXEC) $(OBJS) $(LDFLAGS) $(LIBS)
.cpp.o:
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o [email protected]
Cryptopp文库(cryptopp)是静态的。现在,当我尝试时试图创建目标文件中的第一个命令运行,运行此生成的文件,..其给了我很多的错误这样的..
test.cpp:289: instantiated from here
./include/algparam.h:322: warning: unused variable 'p'
./include/algparam.h: In member function 'void CryptoPP::AlgorithmParametersTemplate<T>::MoveInto(void*) const [with T = unsigned char]':
最后,它连接所有罚款和可执行作品但是如何在不移除-wall
的情况下摆脱这些警告?我没有太多的make和makefile的经验。
我更新了它(改变错误的警告)。但是这些头文件是由cryptopp提供的...不会是改变它们的坏主意吗? – questions 2012-03-16 06:54:46
如果它是开源的,请进行更改并将其提交回存储库。如果您不想这样做,请提交功能请求让开发人员编写更清晰的代码。 (说实话,如果发生这种情况,你会很幸运 - 开源代码的质量从来没有那么棒。)作为最后的手段,你可以在包含特定头文件时禁用这些警告。大多数编译器都有一种在源文件中启用和禁用警告的方法。 – 2012-03-16 07:00:55