ошибки g ++ при компиляции объектных файлов - PullRequest
0 голосов
/ 16 марта 2012

Я написал небольшой make-файл, который следует общей структуре, создавая объектные файлы и затем связывая их, чтобы создать исполняемый файл. Вот как это выглядит ..

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 $@

Библиотека Cryptopp (cryptopp) является статической. Теперь, когда я пытаюсь запустить этот make-файл, когда запускается первая команда, которая пытается создать объектный файл ... она выдает мне много ошибок, подобных этой ...

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 и makefiles.

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Это не ошибка, это предупреждение.(Технически вы можете рассматривать предупреждения как ошибки, которые не мешают компилятору завершить свою работу.)

И способ, которым вы исправляете это, заключается в исправлении кода.Это не имеет ничего общего с make-файлом.Удалите переменную 'p' из строки 322 в ./include/algparam.h.(В предупреждении от компилятора был какой-то намек.)

0 голосов
/ 17 сентября 2012

для этого предупреждения вы можете просто закомментировать переменную p в файле test.cpp или .h, потому что вы ее не используете, или как это

в вашем коде

{
...
#ifdef _DEBUG_
xxx p;
#endif
...
}

и в вашем make-файле, если вы хотите использовать p, просто добавьте -D_DEBUG_ в ваш CXXFLAGS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...