|
Linux下编译ndless-sdk4.0出现大量语法错误
操作系统为Centos6.5
GCC 4.8.2
gmp 4.3.1
mpc 0.8.1
mpft 2.4.2
python 2.6.6
[root@lzrcentos bin]# cd /root/ndless_sdk/
-bash: cd: /root/ndless_sdk/: 没有那个文件或目录
[root@lzrcentos bin]# cd /root
[root@lzrcentos ~]# ls
anaconda-ks.cfg gmp-4.3.1.tar.bz2 mpc-0.8.1.tar.gz Python-2.7.4
foo2zjs install.log mpc-1.0.3 Python-2.7.4.tgz
foo2zjs.tar.gz install.log.syslog mpc-1.0.3.tar.gz wget-log
gcc-4.8.2 LCD-show mpfr-2.4.2
gcc-4.8.2.tar.bz2 LCD-show.tar.gz mpfr-2.4.2.tar.bz2
gmp-4.3.1 mpc-0.8.1 ndless-sdk
[root@lzrcentos ~]# cd ndless-sdk
[root@lzrcentos ndless-sdk]# cd toolchain
[root@lzrcentos toolchain]# ./build_toolchain.sh
Building and installing to '/root/ndless-sdk/toolchain/install'...
Building Binutils...
Building GCC (step 1)...
Building Newlib...
Building GCC (step 2)...
Building GDB...
Building genzehn...
rm -f genzehn
g++ -Wall -Wextra -std=c++11 -I elfio-2.2 genzehn.cpp -lboost_program_options -lz -o genzehn || g++ -Wall -Wextra -std=c++11 -I elfio-2.2 genzehn.cpp -lboost_program_options-mt -lz -o genzehn
In file included from genzehn.cpp:12:0:
zehn.h:1:1: 错误:expected unqualified-id before ‘.’ token
../../include/zehn.h
^
genzehn.cpp: 在函数‘int main(int, char**)’中:
genzehn.cpp:87:9: 错误:‘Zehn_header’在此作用域中尚未声明
Zehn_header header;
^
genzehn.cpp:87:21: 错误:expected ‘;’ before ‘header’
Zehn_header header;
^
genzehn.cpp:101:29: 错误:‘ZEHN_SIGNATURE’在此作用域中尚未声明
if(buffer[i] == ZEHN_SIGNATURE && buffer[i + 1] == ZEHN_VERSION)
^
genzehn.cpp:101:64: 错误:‘ZEHN_VERSION’在此作用域中尚未声明
if(buffer[i] == ZEHN_SIGNATURE && buffer[i + 1] == ZEHN_VERSION)
^
genzehn.cpp:117:53: 错误:‘header’在此作用域中尚未声明
if(!zehn_file.read(reinterpret_cast<char*>(&header), sizeof(header)))
^
genzehn.cpp:126:25: 错误:‘header’在此作用域中尚未声明
<< header.reloc_count << "\trelocations" << std::endl
^
genzehn.cpp:134:21: 错误:‘Zehn_reloc’在此作用域中尚未声明
std::vector<Zehn_reloc> relocs(header.reloc_count);
^
genzehn.cpp:134:31: 错误:模板第 1 个参数无效
std::vector<Zehn_reloc> relocs(header.reloc_count);
^
genzehn.cpp:134:31: 错误:模板第 2 个参数无效
genzehn.cpp:134:39: 错误:invalid type in declaration before ‘(’ token
std::vector<Zehn_reloc> relocs(header.reloc_count);
^
genzehn.cpp:135:21: 错误:‘Zehn_flag’在此作用域中尚未声明
std::vector<Zehn_flag> flags(header.flag_count);
^
genzehn.cpp:135:30: 错误:模板第 1 个参数无效
std::vector<Zehn_flag> flags(header.flag_count);
^
genzehn.cpp:135:30: 错误:模板第 2 个参数无效
genzehn.cpp:135:37: 错误:invalid type in declaration before ‘(’ token
std::vector<Zehn_flag> flags(header.flag_count);
^
genzehn.cpp:138:59: 错误:对成员‘data’的请求出现在‘relocs’中,而后者具有非类类型‘int’
if(!zehn_file.read(reinterpret_cast<char*>(relocs.data()), sizeof(Zehn_reloc) * header.reloc_count))
^
genzehn.cpp:144:58: 错误:对成员‘data’的请求出现在‘flags’中,而后者具有非类类型‘int’
if(!zehn_file.read(reinterpret_cast<char*>(flags.data()), sizeof(Zehn_flag) * header.flag_count))
^
genzehn.cpp:156:47: 错误:‘int[int]’用作数组下标类型无效
if(header.reloc_count != 0 && relocs[0].type == Zehn_reloc_type::FILE_COMPRESSED)
^
genzehn.cpp:156:57: 错误:‘Zehn_reloc_type’未声明
if(header.reloc_count != 0 && relocs[0].type == Zehn_reloc_type::FILE_COMPRESSED)
^
genzehn.cpp:157:70: 错误:‘int[int]’用作数组下标类型无效
std::cout << "This file is compressed (type " << relocs[0].offset << ")" << std::endl;
^
genzehn.cpp:160:25: 错误:对‘begin(int&)’的调用没有匹配的函数
for(auto flag : flags)
^
genzehn.cpp:160:25: 附注:备选是:
In file included from /usr/local/gcc/include/c++/4.8.2/bits/basic_string.h:42:0,
from /usr/local/gcc/include/c++/4.8.2/string:52,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/initializer_list:89:5: 附注:template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)
begin(initializer_list<_Tp> __ils) noexcept
^
/usr/local/gcc/include/c++/4.8.2/initializer_list:89:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘std::initializer_list<_Tp>’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:87:5: 附注:template<class _Tp, unsigned int _Nm> _Tp* std::begin(_Tp (&)[_Nm])
begin(_Tp (&__arr)[_Nm])
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:87:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘_Tp [_Nm]’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:58:5: 附注:template<class _Container> decltype (__cont.begin()) std::begin(const _Container&)
begin(const _Container& __cont) -> decltype(__cont.begin())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:58:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.begin()) std::begin(const _Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:58:5: 错误:对成员‘begin’的请求出现在‘__cont’中,而后者具有非类类型‘const int’
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:48:5: 附注:template<class _Container> decltype (__cont.begin()) std::begin(_Container&)
begin(_Container& __cont) -> decltype(__cont.begin())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:48:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.begin()) std::begin(_Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:48:5: 错误:对成员‘begin’的请求出现在‘__cont’中,而后者具有非类类型‘int’
genzehn.cpp:160:25: 错误:对‘end(int&)’的调用没有匹配的函数
for(auto flag : flags)
^
genzehn.cpp:160:25: 附注:备选是:
In file included from /usr/local/gcc/include/c++/4.8.2/bits/basic_string.h:42:0,
from /usr/local/gcc/include/c++/4.8.2/string:52,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/initializer_list:99:5: 附注:template<class _Tp> constexpr const _Tp* std::end(std::initializer_list<_Tp>)
end(initializer_list<_Tp> __ils) noexcept
^
/usr/local/gcc/include/c++/4.8.2/initializer_list:99:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘std::initializer_list<_Tp>’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:97:5: 附注:template<class _Tp, unsigned int _Nm> _Tp* std::end(_Tp (&)[_Nm])
end(_Tp (&__arr)[_Nm])
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:97:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘_Tp [_Nm]’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:78:5: 附注:template<class _Container> decltype (__cont.end()) std::end(const _Container&)
end(const _Container& __cont) -> decltype(__cont.end())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:78:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.end()) std::end(const _Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:78:5: 错误:对成员‘end’的请求出现在‘__cont’中,而后者具有非类类型‘const int’
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:68:5: 附注:template<class _Container> decltype (__cont.end()) std::end(_Container&)
end(_Container& __cont) -> decltype(__cont.end())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:68:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.end()) std::end(_Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:68:5: 错误:对成员‘end’的请求出现在‘__cont’中,而后者具有非类类型‘int’
genzehn.cpp:164:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_NAME:
^
genzehn.cpp:167:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_VERSION:
^
genzehn.cpp:170:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_AUTHOR:
^
genzehn.cpp:173:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_NOTICE:
^
genzehn.cpp:176:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_VERSION_MAX:
^
genzehn.cpp:177:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_VERSION_MIN:
^
genzehn.cpp:178:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_REVISION_MAX:
^
genzehn.cpp:179:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_REVISION_MIN:
^
genzehn.cpp:180:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_32MB:
^
genzehn.cpp:181:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_CLICKPAD:
^
genzehn.cpp:182:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_COLOR:
^
genzehn.cpp:183:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_TOUCHPAD:
^
genzehn.cpp:204:5: 错误:‘elfio’在此作用域中尚未声明
elfio input_reader;
^
genzehn.cpp:204:5: 附注:建议的替代:
In file included from genzehn.cpp:10:0:
elfio-2.2/elfio/elfio.hpp:68:7: 附注: ‘ELFIO::elfio’
class elfio
^
genzehn.cpp:204:11: 错误:expected ‘;’ before ‘input_reader’
elfio input_reader;
^
genzehn.cpp:206:9: 错误:‘input_reader’在此作用域中尚未声明
if(!input_reader.load(args["input"].as<std::string>()))
^
genzehn.cpp:212:8: 错误:‘input_reader’在此作用域中尚未声明
if(input_reader.get_machine() != EM_ARM)
^
genzehn.cpp:226:5: 错误:‘Zehn_header’在此作用域中尚未声明
Zehn_header header;
^
genzehn.cpp:226:17: 错误:expected ‘;’ before ‘header’
Zehn_header header;
^
genzehn.cpp:228:17: 错误:‘Zehn_reloc’在此作用域中尚未声明
std::vector<Zehn_reloc> reloc_table;
^
genzehn.cpp:228:27: 错误:模板第 1 个参数无效
std::vector<Zehn_reloc> reloc_table;
^
genzehn.cpp:228:27: 错误:模板第 2 个参数无效
genzehn.cpp:228:40: 错误:invalid type in declaration before ‘;’ token
std::vector<Zehn_reloc> reloc_table;
^
genzehn.cpp:229:17: 错误:‘Zehn_flag’在此作用域中尚未声明
std::vector<Zehn_flag> flag_table;
^
genzehn.cpp:229:26: 错误:模板第 1 个参数无效
std::vector<Zehn_flag> flag_table;
^
genzehn.cpp:229:26: 错误:模板第 2 个参数无效
genzehn.cpp:229:38: 错误:invalid type in declaration before ‘;’ token
std::vector<Zehn_flag> flag_table;
^
genzehn.cpp:234:14: 错误:‘Elf_Xword’在此作用域中尚未声明
std::set<Elf_Xword> undefined_symbols; uint32_t got_address = 0; std::set<uint32_t> undo_relocs;
^
genzehn.cpp:234:14: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:54:18: 附注: ‘ELFIO::Elf_Xword’
typedef uint64_t Elf_Xword;
^
genzehn.cpp:234:23: 错误:模板第 1 个参数无效
std::set<Elf_Xword> undefined_symbols; uint32_t got_address = 0; std::set<uint32_t> undo_relocs;
^
genzehn.cpp:234:23: 错误:模板第 2 个参数无效
genzehn.cpp:234:23: 错误:模板第 3 个参数无效
genzehn.cpp:234:42: 错误:invalid type in declaration before ‘;’ token
std::set<Elf_Xword> undefined_symbols; uint32_t got_address = 0; std::set<uint32_t> undo_relocs;
^
genzehn.cpp:237:58: 错误:‘ZEHN_VERSION’在此作用域中尚未声明
std::cout << "Generating Zehn file, version " << ZEHN_VERSION << "." << std::endl;
^
genzehn.cpp:239:5: 错误:‘header’在此作用域中尚未声明
header.signature = ZEHN_SIGNATURE;
^
genzehn.cpp:239:24: 错误:‘ZEHN_SIGNATURE’在此作用域中尚未声明
header.signature = ZEHN_SIGNATURE;
^
genzehn.cpp:240:22: 错误:‘ZEHN_VERSION’在此作用域中尚未声明
header.version = ZEHN_VERSION;
^
genzehn.cpp:241:27: 错误:‘input_reader’在此作用域中尚未声明
header.entry_offset = input_reader.get_entry();
^
genzehn.cpp:248:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NAME, zehn_extra_string(args["name"].as<std::string>(), extra_data)});
^
genzehn.cpp:248:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NAME, zehn_extra_string(args["name"].as<std::string>(), extra_data)});
^
genzehn.cpp:250:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_AUTHOR, zehn_extra_string(args["author"].as<std::string>(), extra_data)});
^
genzehn.cpp:250:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_AUTHOR, zehn_extra_string(args["author"].as<std::string>(), extra_data)});
^
genzehn.cpp:252:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_VERSION, args["version"].as<uint32_t>()});
^
genzehn.cpp:252:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_VERSION, args["version"].as<uint32_t>()});
^
genzehn.cpp:254:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NOTICE, zehn_extra_string(args["notice"].as<std::string>(), extra_data)});
^
genzehn.cpp:254:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NOTICE, zehn_extra_string(args["notice"].as<std::string>(), extra_data)});
^
genzehn.cpp:257:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MIN, args["ndless-min"].as<uint32_t>()});
^
genzehn.cpp:257:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MIN, args["ndless-min"].as<uint32_t>()});
^
genzehn.cpp:259:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MIN, args["ndless-rev-min"].as<uint32_t>()});
^
genzehn.cpp:259:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MIN, args["ndless-rev-min"].as<uint32_t>()});
^
genzehn.cpp:261:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MAX, args["ndless-max"].as<uint32_t>()});
^
genzehn.cpp:261:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MAX, args["ndless-max"].as<uint32_t>()});
^
genzehn.cpp:263:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MAX, args["ndless-rev-max"].as<uint32_t>()});
^
genzehn.cpp:263:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MAX, args["ndless-rev-max"].as<uint32_t>()});
^
genzehn.cpp:265:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_COLOR, args["color-support"].as<bool>()});
^
genzehn.cpp:265:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_COLOR, args["color-support"].as<bool>()});
^
genzehn.cpp:266:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_CLICKPAD, args["clickpad-support"].as<bool>()});
^
genzehn.cpp:266:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_CLICKPAD, args["clickpad-support"].as<bool>()});
^
genzehn.cpp:267:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_TOUCHPAD, args["touchpad-support"].as<bool>()});
^
genzehn.cpp:267:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_TOUCHPAD, args["touchpad-support"].as<bool>()});
^
genzehn.cpp:268:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_32MB, args["32MB-support"].as<bool>()});
^
genzehn.cpp:268:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_32MB, args["32MB-support"].as<bool>()});
^
genzehn.cpp:273:9: 错误:‘section’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:273:9: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:42:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elfio_section.hpp:31:7: 附注: ‘ELFIO::section’
class section
^
genzehn.cpp:273:18: 错误:‘s’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:280:13: 错误:‘symbol_section_accessor’在此作用域中尚未声明
symbol_section_accessor ssa(input_reader, s);
^
genzehn.cpp:280:13: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:622:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elfio_symbols.hpp:29:7: 附注: ‘ELFIO::symbol_section_accessor’
class symbol_section_accessor
^
genzehn.cpp:280:37: 错误:expected ‘;’ before ‘ssa’
symbol_section_accessor ssa(input_reader, s);
^
genzehn.cpp:281:23: 错误:expected ‘;’ before ‘count’
Elf_Xword count = ssa.get_symbols_num();
^
genzehn.cpp:282:27: 错误:expected ‘;’ before ‘i’
for(Elf_Xword i = 0; i < count; ++i)
^
genzehn.cpp:282:38: 错误:‘count’在此作用域中尚未声明
for(Elf_Xword i = 0; i < count; ++i)
^
genzehn.cpp:282:38: 附注:建议的替代:
In file included from /usr/local/gcc/include/c++/4.8.2/algorithm:62:0,
from genzehn.cpp:5:
/usr/local/gcc/include/c++/4.8.2/bits/stl_algo.h:4622:5: 附注: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
genzehn.cpp:284:17: 错误:‘Elf_Half’在此作用域中尚未声明
Elf_Half section; std::string name; unsigned char bind, type;
^
genzehn.cpp:284:17: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:51:18: 附注: ‘ELFIO::Elf_Half’
typedef uint16_t Elf_Half;
^
genzehn.cpp:284:26: 错误:expected ‘;’ before ‘section’
Elf_Half section; std::string name; unsigned char bind, type;
^
genzehn.cpp:285:17: 错误:‘Elf64_Addr’在此作用域中尚未声明
Elf64_Addr u1; Elf_Xword u2; unsigned char u3; //Unused
^
genzehn.cpp:285:17: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:59:18: 附注: ‘ELFIO::Elf64_Addr’
typedef uint64_t Elf64_Addr;
^
genzehn.cpp:285:28: 错误:expected ‘;’ before ‘u1’
Elf64_Addr u1; Elf_Xword u2; unsigned char u3; //Unused
^
genzehn.cpp:285:42: 错误:expected ‘;’ before ‘u2’
Elf64_Addr u1; Elf_Xword u2; unsigned char u3; //Unused
^
genzehn.cpp:286:20: 错误:‘ssa’在此作用域中尚未声明
if(ssa.get_symbol(i, name, u1, u2, bind, type, section, u3) && section == SHN_UNDEF)
^
genzehn.cpp:286:44: 错误:‘u1’在此作用域中尚未声明
if(ssa.get_symbol(i, name, u1, u2, bind, type, section, u3) && section == SHN_UNDEF)
^
genzehn.cpp:286:48: 错误:‘u2’在此作用域中尚未声明
if(ssa.get_symbol(i, name, u1, u2, bind, type, section, u3) && section == SHN_UNDEF)
^
genzehn.cpp:294:39: 错误:对成员‘insert’的请求出现在‘undefined_symbols’中,而后者具有非类类型‘int’
undefined_symbols.insert(i);
^
genzehn.cpp:359:9: 错误:‘section’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:359:9: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:42:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elfio_section.hpp:31:7: 附注: ‘ELFIO::section’
class section
^
genzehn.cpp:359:18: 错误:‘s’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:372:25: 错误:对成员‘push_back’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.push_back({Zehn_reloc_type::ADD_BASE_GOT, static_cast<uint32_t>(s->get_address())});
^
genzehn.cpp:372:36: 错误:‘Zehn_reloc_type’未声明
reloc_table.push_back({Zehn_reloc_type::ADD_BASE_GOT, static_cast<uint32_t>(s->get_address())});
^
genzehn.cpp:405:61: 错误:‘Elf32_Rel’在此作用域中尚未声明
unsigned int entries_count = s->get_size() / sizeof(Elf32_Rel);
^
genzehn.cpp:405:61: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:661:8: 附注: ‘ELFIO::Elf32_Rel’
struct Elf32_Rel {
^
genzehn.cpp:411:15: 错误:‘Elf32_Rel’不是一个类型名
const Elf32_Rel *entries = reinterpret_cast<const Elf32_Rel*>(s->get_data()), *entries_end = entries + entries_count;
^
genzehn.cpp:412:19: 错误:‘Elf32_Rel’不是一个类型名
for(const Elf32_Rel *entry = entries; entry < entries_end; ++entry)
^
genzehn.cpp:412:47: 错误:expected ‘;’ before ‘entry’
for(const Elf32_Rel *entry = entries; entry < entries_end; ++entry)
^
genzehn.cpp:412:47: 错误:‘entry’在此作用域中尚未声明
genzehn.cpp:412:55: 错误:‘entries_end’在此作用域中尚未声明
for(const Elf32_Rel *entry = entries; entry < entries_end; ++entry)
^
genzehn.cpp:414:34: 错误:对成员‘find’的请求出现在‘undefined_symbols’中,而后者具有非类类型‘int’
if(undefined_symbols.find(ELF32_R_SYM(entry->r_info)) != undefined_symbols.end())
^
genzehn.cpp:414:88: 错误:对成员‘end’的请求出现在‘undefined_symbols’中,而后者具有非类类型‘int’
if(undefined_symbols.find(ELF32_R_SYM(entry->r_info)) != undefined_symbols.end())
^
genzehn.cpp:444:29: 错误:对成员‘push_back’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.push_back({Zehn_reloc_type::ADD_BASE, static_cast<uint32_t>(entry->r_offset)});
^
genzehn.cpp:444:40: 错误:‘Zehn_reloc_type’未声明
reloc_table.push_back({Zehn_reloc_type::ADD_BASE, static_cast<uint32_t>(entry->r_offset)});
^
genzehn.cpp:452:21: 错误:对成员‘push_back’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.push_back({Zehn_reloc_type::SET_ZERO, offset});
^
genzehn.cpp:452:32: 错误:‘Zehn_reloc_type’未声明
reloc_table.push_back({Zehn_reloc_type::SET_ZERO, offset});
^
genzehn.cpp:476:21: 错误:对成员‘insert’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:476:40: 错误:对成员‘begin’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:476:50: 错误:‘Zehn_reloc_type’未声明
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:476:106: 错误:‘Zehn_compress_type’未声明
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:482:38: 错误:对成员‘size’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
header.reloc_count = reloc_table.size();
^
genzehn.cpp:483:36: 错误:对成员‘size’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
header.flag_count = flag_table.size();
^
genzehn.cpp:487:35: 错误:对成员‘size’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
+ reloc_table.size() * sizeof(Zehn_reloc)
^
genzehn.cpp:488:34: 错误:对成员‘size’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
+ flag_table.size() * sizeof(Zehn_flag)
^
genzehn.cpp:515:67: 错误:对成员‘data’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(reloc_table.data()), reloc_table.size() * sizeof(Zehn_reloc));
^
genzehn.cpp:515:88: 错误:对成员‘size’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(reloc_table.data()), reloc_table.size() * sizeof(Zehn_reloc));
^
genzehn.cpp:516:66: 错误:对成员‘data’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(flag_table.data()), flag_table.size() * sizeof(Zehn_flag));
^
genzehn.cpp:516:86: 错误:对成员‘size’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(flag_table.data()), flag_table.size() * sizeof(Zehn_flag));
^
In file included from genzehn.cpp:12:0:
zehn.h:1:1: 错误:expected unqualified-id before ‘.’ token
../../include/zehn.h
^
genzehn.cpp: 在函数‘int main(int, char**)’中:
genzehn.cpp:87:9: 错误:‘Zehn_header’在此作用域中尚未声明
Zehn_header header;
^
genzehn.cpp:87:21: 错误:expected ‘;’ before ‘header’
Zehn_header header;
^
genzehn.cpp:101:29: 错误:‘ZEHN_SIGNATURE’在此作用域中尚未声明
if(buffer[i] == ZEHN_SIGNATURE && buffer[i + 1] == ZEHN_VERSION)
^
genzehn.cpp:101:64: 错误:‘ZEHN_VERSION’在此作用域中尚未声明
if(buffer[i] == ZEHN_SIGNATURE && buffer[i + 1] == ZEHN_VERSION)
^
genzehn.cpp:117:53: 错误:‘header’在此作用域中尚未声明
if(!zehn_file.read(reinterpret_cast<char*>(&header), sizeof(header)))
^
genzehn.cpp:126:25: 错误:‘header’在此作用域中尚未声明
<< header.reloc_count << "\trelocations" << std::endl
^
genzehn.cpp:134:21: 错误:‘Zehn_reloc’在此作用域中尚未声明
std::vector<Zehn_reloc> relocs(header.reloc_count);
^
genzehn.cpp:134:31: 错误:模板第 1 个参数无效
std::vector<Zehn_reloc> relocs(header.reloc_count);
^
genzehn.cpp:134:31: 错误:模板第 2 个参数无效
genzehn.cpp:134:39: 错误:invalid type in declaration before ‘(’ token
std::vector<Zehn_reloc> relocs(header.reloc_count);
^
genzehn.cpp:135:21: 错误:‘Zehn_flag’在此作用域中尚未声明
std::vector<Zehn_flag> flags(header.flag_count);
^
genzehn.cpp:135:30: 错误:模板第 1 个参数无效
std::vector<Zehn_flag> flags(header.flag_count);
^
genzehn.cpp:135:30: 错误:模板第 2 个参数无效
genzehn.cpp:135:37: 错误:invalid type in declaration before ‘(’ token
std::vector<Zehn_flag> flags(header.flag_count);
^
genzehn.cpp:138:59: 错误:对成员‘data’的请求出现在‘relocs’中,而后者具有非类类型‘int’
if(!zehn_file.read(reinterpret_cast<char*>(relocs.data()), sizeof(Zehn_reloc) * header.reloc_count))
^
genzehn.cpp:144:58: 错误:对成员‘data’的请求出现在‘flags’中,而后者具有非类类型‘int’
if(!zehn_file.read(reinterpret_cast<char*>(flags.data()), sizeof(Zehn_flag) * header.flag_count))
^
genzehn.cpp:156:47: 错误:‘int[int]’用作数组下标类型无效
if(header.reloc_count != 0 && relocs[0].type == Zehn_reloc_type::FILE_COMPRESSED)
^
genzehn.cpp:156:57: 错误:‘Zehn_reloc_type’未声明
if(header.reloc_count != 0 && relocs[0].type == Zehn_reloc_type::FILE_COMPRESSED)
^
genzehn.cpp:157:70: 错误:‘int[int]’用作数组下标类型无效
std::cout << "This file is compressed (type " << relocs[0].offset << ")" << std::endl;
^
genzehn.cpp:160:25: 错误:对‘begin(int&)’的调用没有匹配的函数
for(auto flag : flags)
^
genzehn.cpp:160:25: 附注:备选是:
In file included from /usr/local/gcc/include/c++/4.8.2/bits/basic_string.h:42:0,
from /usr/local/gcc/include/c++/4.8.2/string:52,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/initializer_list:89:5: 附注:template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)
begin(initializer_list<_Tp> __ils) noexcept
^
/usr/local/gcc/include/c++/4.8.2/initializer_list:89:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘std::initializer_list<_Tp>’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:87:5: 附注:template<class _Tp, unsigned int _Nm> _Tp* std::begin(_Tp (&)[_Nm])
begin(_Tp (&__arr)[_Nm])
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:87:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘_Tp [_Nm]’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:58:5: 附注:template<class _Container> decltype (__cont.begin()) std::begin(const _Container&)
begin(const _Container& __cont) -> decltype(__cont.begin())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:58:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.begin()) std::begin(const _Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:58:5: 错误:对成员‘begin’的请求出现在‘__cont’中,而后者具有非类类型‘const int’
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:48:5: 附注:template<class _Container> decltype (__cont.begin()) std::begin(_Container&)
begin(_Container& __cont) -> decltype(__cont.begin())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:48:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.begin()) std::begin(_Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:48:5: 错误:对成员‘begin’的请求出现在‘__cont’中,而后者具有非类类型‘int’
genzehn.cpp:160:25: 错误:对‘end(int&)’的调用没有匹配的函数
for(auto flag : flags)
^
genzehn.cpp:160:25: 附注:备选是:
In file included from /usr/local/gcc/include/c++/4.8.2/bits/basic_string.h:42:0,
from /usr/local/gcc/include/c++/4.8.2/string:52,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/initializer_list:99:5: 附注:template<class _Tp> constexpr const _Tp* std::end(std::initializer_list<_Tp>)
end(initializer_list<_Tp> __ils) noexcept
^
/usr/local/gcc/include/c++/4.8.2/initializer_list:99:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘std::initializer_list<_Tp>’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:97:5: 附注:template<class _Tp, unsigned int _Nm> _Tp* std::end(_Tp (&)[_Nm])
end(_Tp (&__arr)[_Nm])
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:97:5: 附注: template argument deduction/substitution failed:
genzehn.cpp:160:25: 附注: mismatched types ‘_Tp [_Nm]’ and ‘int’
for(auto flag : flags)
^
In file included from /usr/local/gcc/include/c++/4.8.2/string:51:0,
from /usr/local/gcc/include/c++/4.8.2/bits/locale_classes.h:40,
from /usr/local/gcc/include/c++/4.8.2/bits/ios_base.h:41,
from /usr/local/gcc/include/c++/4.8.2/ios:42,
from /usr/local/gcc/include/c++/4.8.2/ostream:38,
from /usr/local/gcc/include/c++/4.8.2/iostream:39,
from genzehn.cpp:4:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:78:5: 附注:template<class _Container> decltype (__cont.end()) std::end(const _Container&)
end(const _Container& __cont) -> decltype(__cont.end())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:78:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.end()) std::end(const _Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:78:5: 错误:对成员‘end’的请求出现在‘__cont’中,而后者具有非类类型‘const int’
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:68:5: 附注:template<class _Container> decltype (__cont.end()) std::end(_Container&)
end(_Container& __cont) -> decltype(__cont.end())
^
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:68:5: 附注: template argument deduction/substitution failed:
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.end()) std::end(_Container&) [with _Container = int]’:
genzehn.cpp:160:25: required from here
/usr/local/gcc/include/c++/4.8.2/bits/range_access.h:68:5: 错误:对成员‘end’的请求出现在‘__cont’中,而后者具有非类类型‘int’
genzehn.cpp:164:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_NAME:
^
genzehn.cpp:167:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_VERSION:
^
genzehn.cpp:170:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_AUTHOR:
^
genzehn.cpp:173:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::EXECUTABLE_NOTICE:
^
genzehn.cpp:176:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_VERSION_MAX:
^
genzehn.cpp:177:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_VERSION_MIN:
^
genzehn.cpp:178:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_REVISION_MAX:
^
genzehn.cpp:179:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::NDLESS_REVISION_MIN:
^
genzehn.cpp:180:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_32MB:
^
genzehn.cpp:181:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_CLICKPAD:
^
genzehn.cpp:182:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_COLOR:
^
genzehn.cpp:183:18: 错误:‘Zehn_flag_type’未声明
case Zehn_flag_type::RUNS_ON_TOUCHPAD:
^
genzehn.cpp:204:5: 错误:‘elfio’在此作用域中尚未声明
elfio input_reader;
^
genzehn.cpp:204:5: 附注:建议的替代:
In file included from genzehn.cpp:10:0:
elfio-2.2/elfio/elfio.hpp:68:7: 附注: ‘ELFIO::elfio’
class elfio
^
genzehn.cpp:204:11: 错误:expected ‘;’ before ‘input_reader’
elfio input_reader;
^
genzehn.cpp:206:9: 错误:‘input_reader’在此作用域中尚未声明
if(!input_reader.load(args["input"].as<std::string>()))
^
genzehn.cpp:212:8: 错误:‘input_reader’在此作用域中尚未声明
if(input_reader.get_machine() != EM_ARM)
^
genzehn.cpp:226:5: 错误:‘Zehn_header’在此作用域中尚未声明
Zehn_header header;
^
genzehn.cpp:226:17: 错误:expected ‘;’ before ‘header’
Zehn_header header;
^
genzehn.cpp:228:17: 错误:‘Zehn_reloc’在此作用域中尚未声明
std::vector<Zehn_reloc> reloc_table;
^
genzehn.cpp:228:27: 错误:模板第 1 个参数无效
std::vector<Zehn_reloc> reloc_table;
^
genzehn.cpp:228:27: 错误:模板第 2 个参数无效
genzehn.cpp:228:40: 错误:invalid type in declaration before ‘;’ token
std::vector<Zehn_reloc> reloc_table;
^
genzehn.cpp:229:17: 错误:‘Zehn_flag’在此作用域中尚未声明
std::vector<Zehn_flag> flag_table;
^
genzehn.cpp:229:26: 错误:模板第 1 个参数无效
std::vector<Zehn_flag> flag_table;
^
genzehn.cpp:229:26: 错误:模板第 2 个参数无效
genzehn.cpp:229:38: 错误:invalid type in declaration before ‘;’ token
std::vector<Zehn_flag> flag_table;
^
genzehn.cpp:234:14: 错误:‘Elf_Xword’在此作用域中尚未声明
std::set<Elf_Xword> undefined_symbols; uint32_t got_address = 0; std::set<uint32_t> undo_relocs;
^
genzehn.cpp:234:14: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:54:18: 附注: ‘ELFIO::Elf_Xword’
typedef uint64_t Elf_Xword;
^
genzehn.cpp:234:23: 错误:模板第 1 个参数无效
std::set<Elf_Xword> undefined_symbols; uint32_t got_address = 0; std::set<uint32_t> undo_relocs;
^
genzehn.cpp:234:23: 错误:模板第 2 个参数无效
genzehn.cpp:234:23: 错误:模板第 3 个参数无效
genzehn.cpp:234:42: 错误:invalid type in declaration before ‘;’ token
std::set<Elf_Xword> undefined_symbols; uint32_t got_address = 0; std::set<uint32_t> undo_relocs;
^
genzehn.cpp:237:58: 错误:‘ZEHN_VERSION’在此作用域中尚未声明
std::cout << "Generating Zehn file, version " << ZEHN_VERSION << "." << std::endl;
^
genzehn.cpp:239:5: 错误:‘header’在此作用域中尚未声明
header.signature = ZEHN_SIGNATURE;
^
genzehn.cpp:239:24: 错误:‘ZEHN_SIGNATURE’在此作用域中尚未声明
header.signature = ZEHN_SIGNATURE;
^
genzehn.cpp:240:22: 错误:‘ZEHN_VERSION’在此作用域中尚未声明
header.version = ZEHN_VERSION;
^
genzehn.cpp:241:27: 错误:‘input_reader’在此作用域中尚未声明
header.entry_offset = input_reader.get_entry();
^
genzehn.cpp:248:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NAME, zehn_extra_string(args["name"].as<std::string>(), extra_data)});
^
genzehn.cpp:248:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NAME, zehn_extra_string(args["name"].as<std::string>(), extra_data)});
^
genzehn.cpp:250:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_AUTHOR, zehn_extra_string(args["author"].as<std::string>(), extra_data)});
^
genzehn.cpp:250:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_AUTHOR, zehn_extra_string(args["author"].as<std::string>(), extra_data)});
^
genzehn.cpp:252:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_VERSION, args["version"].as<uint32_t>()});
^
genzehn.cpp:252:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_VERSION, args["version"].as<uint32_t>()});
^
genzehn.cpp:254:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NOTICE, zehn_extra_string(args["notice"].as<std::string>(), extra_data)});
^
genzehn.cpp:254:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::EXECUTABLE_NOTICE, zehn_extra_string(args["notice"].as<std::string>(), extra_data)});
^
genzehn.cpp:257:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MIN, args["ndless-min"].as<uint32_t>()});
^
genzehn.cpp:257:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MIN, args["ndless-min"].as<uint32_t>()});
^
genzehn.cpp:259:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MIN, args["ndless-rev-min"].as<uint32_t>()});
^
genzehn.cpp:259:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MIN, args["ndless-rev-min"].as<uint32_t>()});
^
genzehn.cpp:261:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MAX, args["ndless-max"].as<uint32_t>()});
^
genzehn.cpp:261:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_VERSION_MAX, args["ndless-max"].as<uint32_t>()});
^
genzehn.cpp:263:20: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MAX, args["ndless-rev-max"].as<uint32_t>()});
^
genzehn.cpp:263:31: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::NDLESS_REVISION_MAX, args["ndless-rev-max"].as<uint32_t>()});
^
genzehn.cpp:265:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_COLOR, args["color-support"].as<bool>()});
^
genzehn.cpp:265:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_COLOR, args["color-support"].as<bool>()});
^
genzehn.cpp:266:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_CLICKPAD, args["clickpad-support"].as<bool>()});
^
genzehn.cpp:266:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_CLICKPAD, args["clickpad-support"].as<bool>()});
^
genzehn.cpp:267:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_TOUCHPAD, args["touchpad-support"].as<bool>()});
^
genzehn.cpp:267:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_TOUCHPAD, args["touchpad-support"].as<bool>()});
^
genzehn.cpp:268:16: 错误:对成员‘push_back’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
flag_table.push_back({Zehn_flag_type::RUNS_ON_32MB, args["32MB-support"].as<bool>()});
^
genzehn.cpp:268:27: 错误:‘Zehn_flag_type’未声明
flag_table.push_back({Zehn_flag_type::RUNS_ON_32MB, args["32MB-support"].as<bool>()});
^
genzehn.cpp:273:9: 错误:‘section’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:273:9: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:42:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elfio_section.hpp:31:7: 附注: ‘ELFIO::section’
class section
^
genzehn.cpp:273:18: 错误:‘s’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:280:13: 错误:‘symbol_section_accessor’在此作用域中尚未声明
symbol_section_accessor ssa(input_reader, s);
^
genzehn.cpp:280:13: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:622:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elfio_symbols.hpp:29:7: 附注: ‘ELFIO::symbol_section_accessor’
class symbol_section_accessor
^
genzehn.cpp:280:37: 错误:expected ‘;’ before ‘ssa’
symbol_section_accessor ssa(input_reader, s);
^
genzehn.cpp:281:23: 错误:expected ‘;’ before ‘count’
Elf_Xword count = ssa.get_symbols_num();
^
genzehn.cpp:282:27: 错误:expected ‘;’ before ‘i’
for(Elf_Xword i = 0; i < count; ++i)
^
genzehn.cpp:282:38: 错误:‘count’在此作用域中尚未声明
for(Elf_Xword i = 0; i < count; ++i)
^
genzehn.cpp:282:38: 附注:建议的替代:
In file included from /usr/local/gcc/include/c++/4.8.2/algorithm:62:0,
from genzehn.cpp:5:
/usr/local/gcc/include/c++/4.8.2/bits/stl_algo.h:4622:5: 附注: ‘std::count’
count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
^
genzehn.cpp:284:17: 错误:‘Elf_Half’在此作用域中尚未声明
Elf_Half section; std::string name; unsigned char bind, type;
^
genzehn.cpp:284:17: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:51:18: 附注: ‘ELFIO::Elf_Half’
typedef uint16_t Elf_Half;
^
genzehn.cpp:284:26: 错误:expected ‘;’ before ‘section’
Elf_Half section; std::string name; unsigned char bind, type;
^
genzehn.cpp:285:17: 错误:‘Elf64_Addr’在此作用域中尚未声明
Elf64_Addr u1; Elf_Xword u2; unsigned char u3; //Unused
^
genzehn.cpp:285:17: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:59:18: 附注: ‘ELFIO::Elf64_Addr’
typedef uint64_t Elf64_Addr;
^
genzehn.cpp:285:28: 错误:expected ‘;’ before ‘u1’
Elf64_Addr u1; Elf_Xword u2; unsigned char u3; //Unused
^
genzehn.cpp:285:42: 错误:expected ‘;’ before ‘u2’
Elf64_Addr u1; Elf_Xword u2; unsigned char u3; //Unused
^
genzehn.cpp:286:20: 错误:‘ssa’在此作用域中尚未声明
if(ssa.get_symbol(i, name, u1, u2, bind, type, section, u3) && section == SHN_UNDEF)
^
genzehn.cpp:286:44: 错误:‘u1’在此作用域中尚未声明
if(ssa.get_symbol(i, name, u1, u2, bind, type, section, u3) && section == SHN_UNDEF)
^
genzehn.cpp:286:48: 错误:‘u2’在此作用域中尚未声明
if(ssa.get_symbol(i, name, u1, u2, bind, type, section, u3) && section == SHN_UNDEF)
^
genzehn.cpp:294:39: 错误:对成员‘insert’的请求出现在‘undefined_symbols’中,而后者具有非类类型‘int’
undefined_symbols.insert(i);
^
genzehn.cpp:359:9: 错误:‘section’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:359:9: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:42:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elfio_section.hpp:31:7: 附注: ‘ELFIO::section’
class section
^
genzehn.cpp:359:18: 错误:‘s’在此作用域中尚未声明
section *s = input_reader.sections[i];
^
genzehn.cpp:372:25: 错误:对成员‘push_back’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.push_back({Zehn_reloc_type::ADD_BASE_GOT, static_cast<uint32_t>(s->get_address())});
^
genzehn.cpp:372:36: 错误:‘Zehn_reloc_type’未声明
reloc_table.push_back({Zehn_reloc_type::ADD_BASE_GOT, static_cast<uint32_t>(s->get_address())});
^
genzehn.cpp:405:61: 错误:‘Elf32_Rel’在此作用域中尚未声明
unsigned int entries_count = s->get_size() / sizeof(Elf32_Rel);
^
genzehn.cpp:405:61: 附注:建议的替代:
In file included from elfio-2.2/elfio/elfio.hpp:39:0,
from genzehn.cpp:10:
elfio-2.2/elfio/elf_types.hpp:661:8: 附注: ‘ELFIO::Elf32_Rel’
struct Elf32_Rel {
^
genzehn.cpp:411:15: 错误:‘Elf32_Rel’不是一个类型名
const Elf32_Rel *entries = reinterpret_cast<const Elf32_Rel*>(s->get_data()), *entries_end = entries + entries_count;
^
genzehn.cpp:412:19: 错误:‘Elf32_Rel’不是一个类型名
for(const Elf32_Rel *entry = entries; entry < entries_end; ++entry)
^
genzehn.cpp:412:47: 错误:expected ‘;’ before ‘entry’
for(const Elf32_Rel *entry = entries; entry < entries_end; ++entry)
^
genzehn.cpp:412:47: 错误:‘entry’在此作用域中尚未声明
genzehn.cpp:412:55: 错误:‘entries_end’在此作用域中尚未声明
for(const Elf32_Rel *entry = entries; entry < entries_end; ++entry)
^
genzehn.cpp:414:34: 错误:对成员‘find’的请求出现在‘undefined_symbols’中,而后者具有非类类型‘int’
if(undefined_symbols.find(ELF32_R_SYM(entry->r_info)) != undefined_symbols.end())
^
genzehn.cpp:414:88: 错误:对成员‘end’的请求出现在‘undefined_symbols’中,而后者具有非类类型‘int’
if(undefined_symbols.find(ELF32_R_SYM(entry->r_info)) != undefined_symbols.end())
^
genzehn.cpp:444:29: 错误:对成员‘push_back’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.push_back({Zehn_reloc_type::ADD_BASE, static_cast<uint32_t>(entry->r_offset)});
^
genzehn.cpp:444:40: 错误:‘Zehn_reloc_type’未声明
reloc_table.push_back({Zehn_reloc_type::ADD_BASE, static_cast<uint32_t>(entry->r_offset)});
^
genzehn.cpp:452:21: 错误:对成员‘push_back’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.push_back({Zehn_reloc_type::SET_ZERO, offset});
^
genzehn.cpp:452:32: 错误:‘Zehn_reloc_type’未声明
reloc_table.push_back({Zehn_reloc_type::SET_ZERO, offset});
^
genzehn.cpp:476:21: 错误:对成员‘insert’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:476:40: 错误:对成员‘begin’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:476:50: 错误:‘Zehn_reloc_type’未声明
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:476:106: 错误:‘Zehn_compress_type’未声明
reloc_table.insert(reloc_table.begin(), {Zehn_reloc_type::FILE_COMPRESSED, static_cast<uint32_t>(Zehn_compress_type::ZLIB)});
^
genzehn.cpp:482:38: 错误:对成员‘size’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
header.reloc_count = reloc_table.size();
^
genzehn.cpp:483:36: 错误:对成员‘size’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
header.flag_count = flag_table.size();
^
genzehn.cpp:487:35: 错误:对成员‘size’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
+ reloc_table.size() * sizeof(Zehn_reloc)
^
genzehn.cpp:488:34: 错误:对成员‘size’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
+ flag_table.size() * sizeof(Zehn_flag)
^
genzehn.cpp:515:67: 错误:对成员‘data’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(reloc_table.data()), reloc_table.size() * sizeof(Zehn_reloc));
^
genzehn.cpp:515:88: 错误:对成员‘size’的请求出现在‘reloc_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(reloc_table.data()), reloc_table.size() * sizeof(Zehn_reloc));
^
genzehn.cpp:516:66: 错误:对成员‘data’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(flag_table.data()), flag_table.size() * sizeof(Zehn_flag));
^
genzehn.cpp:516:86: 错误:对成员‘size’的请求出现在‘flag_table’中,而后者具有非类类型‘int’
output_writer.write(reinterpret_cast<const char*>(flag_table.data()), flag_table.size() * sizeof(Zehn_flag));
^
make: *** [genzehn] 错误 1
|
|