对"std::__default_alloc_template<true, 0>::d eallocate(void*, unsigned int)"的未定义引用
undefined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
在ubuntu上链接代码时,我得到以下错误undefined reference to 'std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
我尝试了几个g++编译器,但没有任何变化。我在之前的答案中发现的原因是配置错误,如果包括。以下是代码中包含的内容:
#pragma warning(disable:4786)
#include <stdio.h>
#include <map>
#include <string>
#include <vector>
#include <png.h>
#include <math.h>
#include <ft2build.h>
#include <gd.h>
#include FT_FREETYPE_H
using namespace std;
#ifndef WIN32
#define stricmp strcasecmp
#else
#include <io.h>
#include <fcntl.h>
#endif
请帮助修复这些包括?
您可能正在编译并将链接到gcc
而不是g++
。对于编译来说,没有太大的区别。GCC使用文件扩展名来猜测真正的语言,但是在链接时,g++
也会引入c++标准库,这是通常定义分配器的地方。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 在c++类上调用void函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 我应该使用什么来代替void作为变体中的替代类型之一
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 错误:从'void*'到'const uint8_t* {aka const unsigned char*}'的转换无效 [-允许]
- 编译Qt项目给出了对运算符delete(void*,unsigned int)的未定义引用
- 指针行为从void*到unsigned char*的奇怪情况
- 在 constexpr 中将 'void*' 转换为 'unsigned int'
- 错误消息"invalid conversion from ‘void*’ to ‘unsigned int’"
- G++ 编译器:从 'pthread_t {aka long unsigned int}' 到 'void* (*)(void*)' 的转换无效 [-允许]
- 将void*赋值给int或unsigned int
- what does ++operator do in this void uart_puts(unsigned char
- 对"std::__default_alloc_template<true, 0>::d eallocate(void*, unsigned int)"的未定义引用
- 如何从unsigned long强制转换为void*