Сейчас на форуме: jinoweb (+4 невидимых) |
eXeL@B —› Программирование —› Linking static library in VS 2008 |
Посл.ответ | Сообщение |
|
Создано: 28 февраля 2020 08:44 · Поправил: plutos · Личное сообщение · #1 Краткая предыстория: достался мне набор файлов, вместе составляющих visual studio project (но только source files and headres (.срр и .h), самого .vcproj файла нет). Создатель проэкта сразу сделал оговорку, что проэкт собирать в VS 2005 или в VS2008. Я как-то все эти upgrades проэктов к новым версиям студии не люблю, там разные "чудеса" случаются, поэтому взял VS2008, создал проэкт, добавил к нему уже имеющиеся файлы и собрал без проблем. Все работает, никаких претензий. В числе набора файлов были один .lib file and header для этой библиотеки. Linker все сделал как надо - статически встроил код из библиотеки в созданый .ехе, я его прекрасно вижу в hex dump'e of the final exe и в dumpbin выхлопе, если на вход даю свою statically linked library (.lib file). Все на месте как надо. Но при сборке я не указывал linker'y Additional Dependencies с указанием на мою статическую библиотеку. В Property pages моего .lib файла в разделе Cofiguration Properties, General, Tool => стоит "Custom Build Tool". Но что это за tool в данном случае я так и не смог понять, нигде нет ничего, даже в project file. И откуда он там взялся? Я никаких custom build rules and tools не добавлял. В header'e тоже ничего нет, никаких linker pragma's. Вопрос: каким образом VSBuild механизм определил, что .lib file это статик библиотека и встроил его куда надо? Mоя последняя догадка - это инфо, содержащаяся в самом .lib file. Code:
Т.е. Linker читает информацию из COFF SYMBOL TABLE и использует ее для своих целей? ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 28 февраля 2020 15:11 · Личное сообщение · #2 plutos В коде могут быть директивы #pragma comment(lib,"xyz.lib") ----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: plutos |
|
Создано: 28 февраля 2020 16:15 · Личное сообщение · #3 plutos пишет: Но при сборке я не указывал linker'y Additional Dependencies с указанием на мою статическую библиотеку. Если либу в файлы проекта добавил, это то же самое. | Сообщение посчитали полезным: plutos |
|
Создано: 29 февраля 2020 02:18 · Поправил: plutos · Личное сообщение · #4 ARCHANGEL пишет: В коде могут быть директивы #pragma comment(lib,"xyz.lib") plutos пишет: никаких linker pragma's. ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: ARCHANGEL |
eXeL@B —› Программирование —› Linking static library in VS 2008 |
Эта тема закрыта. Ответы больше не принимаются. |