| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Удаление имен файлов из статической библиотеки |
| Автор: opiate 12.10.2012, 09:27 |
| Добрый день! Использую компиллятор VS2008, тип проекта - статическая библиотека. Опции пока стандартные для Release конфигурации. Debug information format - Disabled; После создания библиотеки просматриваю её HEX редактором и вижу, помимо имен экспортируемых функций, так же полные пути к исходным кодам, obj-файлам, h-никам, опциям компилятора. Как мне сделать чтобы остались только имена функций? |
| Автор: bsa 12.10.2012, 14:25 |
| статическая библиотека - это архив в формате ar. Этот архив содержит все объектные файлы, что соответствующие исходникам. Почему в объектных файлах содержится информация о путях в этим исходникам я, к сожалению, уже подсказать не могу. |
| Автор: opiate 12.10.2012, 15:29 | ||
| Хм... действительно, в начале lib-файла заголовок !<arch> и открывается 7zip-ом, я такого не ожидал. Но вопрос все равно открыт. Похоже, что в obj-файлы записываются полные команды компилляции с некоторыми опциями проекта и полными путями, включая папки, в которых надо искать h-ники. Есть даже полный путь до самого cl.exe Вот, например (скопировано из hex-редактора):
|
| Автор: boostcoder 12.10.2012, 18:03 |
| opiate, а как это может мешать? или ты решил выдать чужой код за свой? |
| Автор: opiate 12.10.2012, 18:08 | ||
| feodorv, видимо, я не из той либы выдернул эту строчку. В общем для точности создал проект с одним файлом и одной функцией и с компилировал в Release (только заменил опцию /Zi на Disabled). В результате из этой либы видно какой версии и куда у меня установлена Visual Studio, какой разрядности система, в какой папке лежит мой проект, имя исходника, опции компилятора, и т.д. и т.п. Добавлено через 5 минут и 22 секунды
Не поверишь, но иногда приходится делать наоборот. |
| Автор: boostcoder 12.10.2012, 20:39 |
то что ты делаешь, как раз позволит кому угодно выдать твою либу за свою. так что да, не верю. |
| Автор: opiate 12.10.2012, 21:22 |
| boostcoder, почему на каждом форуме всегда найдется тип, вроде тебя, с 5330 сообщений, и вместо того, чтобы помочь по делу, задает какие-то бесполезные вопросы? Рекламируешь то что у тебя в подписи или просто любишь поговорить ни о чем? |
| Автор: boostcoder 12.10.2012, 23:33 |
я не считаю нужным помогать в данном "деле", ибо обоснования фактически нет. а то какое есть - сомнительно. |
| Автор: opiate 13.10.2012, 14:00 |
в таком случае, просто не отвечай, если ты, конечно, не занят накруткой сообщений. Если бы я выдавал чужую библиотеку за свою, в моих интересах было бы, как раз, наличие ссылок на мое рабочее окружение. |
| Автор: boostcoder 13.10.2012, 14:04 | ||
я об этом и говорил раньше я так и не понял, для чего это нужно. хотя, была любопытна аргументация. |
| Автор: opiate 13.10.2012, 15:47 |
я ответил для чего это нужно. сомневаешься - создай свою тему и флуди дальше там. Свою задачу я уже давно решил, но довольно прямолинейно. Хотелось бы просто выяснить, нельзя ли это сделать более эстетическим способом, например установкой ключа компиллятора или линкера. Уточню, что нужно, чтобы в obj-файлы не включалась информация о каких либо файлах и директориях из которых происходит сборка статической библиотеки. |