собираю проект с помощью MinGW и Yasm... по соглашению, в проекте используется С++ манера именования функций... то есть, написанные на ассемблере функции должны иметь метки формата C++ имени в хедере... в msvc - все просто, создаю такую функцию, потом линкер ее не находит и выводит ее "украшенное" имя, которое я уже подставляю в метку в асм-файле... линкер MinGW выводит функцию в таком виде, в каком она указана в хедере... вопрос: как определить украшенное имя функции в MinGW?))
В принципе, nm.exe из поставки MinGW'а, примененный к скомпилированному объектному файлу, показывает все символы, и те, что экспортируются и те, что требуются для успешной линковки. Т.ч., можете попробовать поискать в полученном листинге замангленное название вашей внешней асм ф-ции. Man по nm, собственно. Только немного не понятен подобный изврат с именами. Собственно для этого и существует 'extern "C"' директива компилятора... Объясните сакральный смысл сего действа, если не трудно.
да, спасибо! помогло... ну это специфика проекта... когда разрабатываешь проект один - то само собой делаешь, как тебе удобно... но когда вливаешься в тим-проект, то нужно следовать установленным для проекта стандартам, хоть особого значения этот стандарт может и не иметь...
Основная проблема подобного подхода в том, что нет однозначного соответствия между названием ф-ции в хидере и асм коде, по этому, тому кто после будет разбирать код, можно только посочувствовать. В прочем, gcc, вроде как, может генерить map-файлы, с указанием чего куда и откуда включал. Неплохой повод заставить человека выучить мат часть! Но нецензурных выражений ( в свой адрес ), тоже можно будет выучить не мало!