Я компилирую sqlite3 с помощью Visual Studio 2008. Когда я пытаюсь выполнить одноэтапную операцию в любой функции sqlite3 (например, sqlite3_open
), Visual Studio отображает неправильную строку исходного кода. И это выглядит действительно неправильно. Функция sqlite3_open
, как представляется, объявлена в строке 114,788; и когда я нахожусь в одном шаге, это приводит меня к строке 49, 254.Visual Studio 2008 Неправильная исходная строка
Я попытался восстановить все. Я думаю, что я собираю все одинаково (т. Е. Ту же самую библиотеку времени выполнения, формат отладочной информации и т. Д.).
Что я делаю неправильно?
Редактировать: Чтобы скомпилировать sqlite3 для Windows, я создал новый «проект Win32», назвав его «sqlite3», выбрав для него статическую библиотеку и пустой проект. Я добавил «sqlite3.c» в папку «Исходные файлы» под новым проектом «sqlite3» и файл «sqlite3.h» в папку «Заголовочные файлы». В результате компиляции на этом этапе был получен sqlite3.lib.
Вот командная строка передается в п:
/Od /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /ZI /TP /errorReport:prompt
У меня есть отдельный exe-проект в том же растворе, который я создал, как «Win32 Project» выбор для того, чтобы быть «пустой проект »и« консольное приложение ». Этот проект включает в себя заголовок sqlite3.h, а в качестве «дополнительных зависимостей» я включаю sqlite3.lib. Мой код выглядит следующим образом:
sqlite3 *pDb;
sqlite3_open("C:\\some.db", &pDb);
Вхождение в эту функцию приводит меня к неправильной исходной строки в sqlite3.c.
Edit2: Вот ссылка на источник sqlite3, который я скачал: http://www.sqlite.org/sqlite-amalgamation-3071100.zip
А вот документация о том, как построить его таким образом (то есть, просто скомпилировать sqlite3.c в проекте): http://www.sqlite.org/amalgamation.html
Редактировать 3: Для чего это стоит, стек вызовов в моем окне отладки появляется, следуя правильному коду. И использование API правильно приводит к правильным результатам. Кажется, что компиляция работает, строка исходного кода просто неверна.
Как мы можем догадываться, что это мало? –
@ DanielFischer Извините, что еще я должен включить, чтобы помочь определить? – omghai2u
Для начала, точные шаги, которые вы использовали для его компиляции, могут оказаться полезными. –