Вопросы с тегом 'name-mangling'

Name-mangling - это метод, используемый компиляторами (в основном компиляторами С++) для кодирования информации в строках, которые могут поддерживаться компоновщиками, предназначенными для обработки кода C.
12
ответов

Каков эффект extern "C" в С++?

Что именно помещает extern "C" в код С++? Например: extern "C" { void foo(); }
задан 25 июня '09 в 5:10
9
ответов

Как перечислить символы в файле .so

Как список экспортируемых символов из файла .so. Если возможно, я также хотел бы узнать их источник (например, если они были извлечены из статической библиотеки). Я использую gcc 4.0.2, если это имеет значение
задан 29 авг. '08 в 19:57
9
ответов

Почему функции C не могут быть названы?

Недавно у меня было интервью, и один вопрос спросил, что такое extern "C" в коде на С++. Я ответил, что использовать C-функции в С++-коде, поскольку C не использует имя-mangling. Меня спросили, почему C не использует шифрование имен, и, честно говор...
задан 14 апр. '16 в 14:34
10
ответов

Зачем нам нужен extern "C" {#include <foo.h>} в С++?

Зачем нам нужно использовать: extern "C" { #include <foo.h> } В частности: Когда мы должны его использовать? Что происходит на уровне компилятора/компоновщика, который требует от нас его использовать? Как с точки зрения компиляции/связ...
задан 16 сент. '08 в 2:19
11
ответов

Разрыв результата std:: type_info:: name

В настоящее время я работаю над некоторым кодом регистрации, который должен, среди прочего, печатать информацию о вызывающей функции. Это должно быть относительно легко, стандартный С++ имеет класс type_info. Это содержит имя типа/функции typeid'd/e...
задан 11 нояб. '08 в 21:52
5
ответов

Scala: Как динамически создать экземпляр объекта и вызвать метод с использованием отражения?

В Scala, какой лучший способ динамически создать экземпляр объекта и вызвать метод с использованием отражения? Я хотел бы сделать Scala -эквивалент следующего кода Java: Class class = Class.forName("Foo"); Object foo = class.newInstance(); Method ...
задан 24 сент. '09 в 8:51
3
ответов

Получение измененного имени из измененного имени

Есть ли способ вернуть искомое имя из demangled name в g++. Например, у меня есть demangled name func(char*, int), что я должен сделать, чтобы получить измененное имя i.e _Z4funcPci назад? Мой вопрос задан g++.
задан 13 сент. '12 в 8:44
8
ответов

Что называется mangling, и как это работает?

Пожалуйста, объясните, что такое имя, как он работает, как он работает, какую проблему он решает, и в каких контекстах и ​​языках используется. Стратегии изменения имени (например, какое имя выбрано компилятором и почему) плюс.
задан 22 авг. '09 в 3:20
3
ответов

С++ имя mangling decoder для g++?

существует ли какой-либо С++-кодирующий декодер для g++?
задан 17 дек. '10 в 11:26
2
ответов

g++ undefined ссылка, хотя символ присутствует в файле *.so

Я нашел ряд похожих вопросов (например, this, that или this), но никто из них не помог мне решить мою проблему. У меня есть файл *.so(из ядра gnss-sdr), что указано: $nm libgnss_system_parameters_dyn.so | c++filt |grep Gps_Eph содержит символ G...
задан 06 апр. '17 в 16:20
2
ответов

Как я могу увидеть символы (C и С++) двоичных файлов в linux?

Какие инструменты вы используете? Как символы demangle С++ могут передавать его в инструменты профилирования, такие как opannotate? Спасибо
задан 04 сент. '09 в 17:13
5
ответов

Как остановить отмену обработки экспортированной мной DLL-функции?

Я пытаюсь создать DLL, которая экспортирует функцию под названием GetName. Я бы хотел, чтобы другой код мог вызвать эту функцию без необходимости знать имя функции. Мой заголовочный файл выглядит следующим образом: #ifdef __cplusplus #define EXPORT...
задан 23 сент. '09 в 19:26
2
ответов

Почему имя, которое не стандартизировано

Мне просто интересно, почему название mangling никогда не было стандартизировано стандартом С++. Очевидно, что разные алгоритмы изменения имен повреждают интероперабельность [1], и я не вижу никакого преимущества в определении его реализации. То ест...
задан 12 апр. '12 в 19:42
1
ответ

В Itanium С++ ABI, почему искаженное имя для функций шаблона не разрешает зависимые typedefs?

Например: template <typename T> struct foo { using bar = int; }; // _Z3bazi void baz(foo<int>::bar quux) { } template <typename T> void baz(typename foo<T>::bar quux) { } // _Z3bazIiEvN3fooIT_E3barE template void baz&l...
задан 20 окт. '16 в 17:37
5
ответов

вопросы об управлении именами в С++

Я пытаюсь изучить и понять манипулирование именами на С++. Вот несколько вопросов: (1) Из devx Когда глобальная функция перегружена, сгенерированное искаженное имя для каждой перегруженной версии уникально. К переменным относится также изменение и...
задан 30 мая '10 в 5:02