编译对象文件时出现g++错误
g++ errors while compiling object files
我写了一个小的makefile,它遵循通用结构,创建对象文件,然后链接以创建可执行文件。这是它的样子。。
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)是静态的。现在,当我尝试运行这个makefile时,当第一个尝试创建对象文件的命令运行时。。它给了我很多这样的错误。。
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没有太多经验。
这不是错误,而是警告。(从技术上讲,您可以将警告视为不会阻止编译器完成其工作的错误。)
修复它的方法就是修复代码。这与生成文件无关。从中的第322行删除变量"p"/include/algparam.h。(编译器发出的警告消息中有一点提示。)
对于此警告,您可以在test.cpp或.h文件中注释变量p
,因为您没有使用它,或者喜欢此
在您的代码中
{
...
#ifdef _DEBUG_
xxx p;
#endif
...
}
在您的makefile中,如果您想使用p
,只需在CXXFLAGS
中添加-D_DEBUG_
即可
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 错误:未在此范围内声明'reverse'