в наборе sqlite не было sqlite3.lib, только dll & lib. Я конвертировал def в либу lib.exe" /def:d:\sqite3.def /out:d:\sqite.lib и добавил в строку линкера. Пробую собирать: project.obj : error LNK2001: unresolved external symbol @sqlite3_open@8 project.exe : fatal error LNK1120: 1 unresolved externals Смотрю внутрь sqlite3.lib - там есть sqlite3_open. Не ясно почему линкер не видит эту функцию ? Помогите понять где я туплю либа в атаче.
Советую таки взять исходники sqlite, и самому собрать из них полноценные .dll и .lib При конвертировании из .def в .lib - программа lib.exe ничего не знает о кол-ве аргументов, принимаемых функциями, поэтому, вместо требуемого линкеру "_sqlite3_open@8", в получившемся .lib, вероятнее всего, будет фигурировать "_sqlite3_open", что и даёт ошибку unresolved external symbol.
проблема манглинга имен функций встает, видать, со временем у всех )) common_up, ищи библиотеку импорта к твоей длл, либо сделай ее сам, но чтобы stdcall/fastcall там нормально прописались. для этого пригодится inc2lib из пакета масм, или же собрать длл с такими же экспортами, но вместо ф-ий заглушки, линкер сгенерит нужную либу импорта. но проще всего будет подключить sqlite в виде исходных кодов к проекту, если не можешь найти либу импорта
Да там этот gcc(sqlite gcc собирается), а работаю в студии. Не подключить сорсы к проекту. Я даже и не думал, что скулайт и си такие проблемы. На асме с длл работал без проблем, а тут такая вот трабла.