本文整理汇总了C++中ObjectFile::LoadFromFile方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectFile::LoadFromFile方法的具体用法?C++ ObjectFile::LoadFromFile怎么用?C++ ObjectFile::LoadFromFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjectFile
的用法示例。
在下文中一共展示了ObjectFile::LoadFromFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadFile
void Linker::LoadFile(string inputFile)
{
ObjectFile objectFile;
objectFile.LoadFromFile(inputFile);
unordered_map<string, int> sectionOffsets;
// for (auto §ion: objectFile.sections)
// {
// sections.insert({section.first, section.second});
// }
for (auto &symbol: objectFile.symbols)
{
if (symbol.second.symbolType == TokenType::SECTION)
{
//TODO: kobasica
auto section = objectFile.sections.find(symbol.second.name);
sections.insert({section->first, section->second});
logFile << "Adding section symbol " << symbol.second.name << endl;
sectionOffsets[symbol.second.name] = AddSection(symbol.second, objectFile.sections.find(symbol.second.name)->second);
}
}
for (auto &symbol: objectFile.symbols)
{
if (symbol.second.symbolType == TokenType::LABEL)
{
logFile << "Adding label symbol " << symbol.second.name << endl;
symbol.second.offset += sectionOffsets[symbol.second.sectionName];
AddSymbol(symbol.second);
}
}
for (auto &relocation: objectFile.relocations)
{
//TODO: error ?
relocation.offset += sectionOffsets[relocation.section];
relocations.push_back(relocation);
}
}