我寫了一個小的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