Próbuję dodać SQLite do mojego projektu przez DLL.Jak dołączyć bibliotekę DLL SQLite do mojego projektu C++?
Pobrałem SQLiteDLL-3 z download page, wyodrębniłem jego zawartość (bibliotekę DLL i plik .h) i uruchomiłem na niej lib.exe, aby utworzyć plik .lib. Następnie ustawiam katalog zawierający pliki .lib i .dll jako Katalog dodatkowej biblioteki, w ustawieniach projektu, pod Linker >> Ogólne.
Następnie pobrałem SQLiteSource-3 ze strony pobierania i wyodrębniłem plik SQLite3.h do katalogu z plikami .Lib i .DLL, i dodałem ten katalog jako katalog Dodatkowy katalog w C/C++ >> Ogólne . Dodałem #include do mojego głównego pliku, a następnie dodałem sqlite3.dll jako dodatkową zależność w Linker >> Input.
Zasadniczo następnie this, ale kiedy go uruchomić, dostaję błąd mówiąc:
fatal error LNK1107: invalid or corrupt file: cannot read at 0x2B8
Próbowałem wiele rzeczy do poprawienia, w tym budowę plik .lib zarówno pod x86 i x64, i włączając pełną ścieżkę do pliku .lib na liście Dodatkowych zależności. To zawsze ten błąd, który dostaję. Wygląda na to, że przynajmniej znalazłem plik .h, ponieważ jeśli pomieszam z nazwą w załączeniu, otrzymuję komunikat "nie mogę znaleźć pliku", więc ta część wydaje się być poprawna.
Czy ktoś może zobaczyć, co robię nieprawidłowo i jak rozwiązać problem?
Aktualizacja: Naprawiono „nieprawidłowy lub uszkodzony plik” problem dodając plik .lib do listy Dodatkowe Dependies, w przeciwieństwie do pliku .dll. Teraz dostaję nierozwiązane błędy łącznikowe:
błąd LNK2019: nierozwiązanych zewnętrznych symbolu _sqlite3_exec mowa w funkcji _MAIN
błędu LNK2019: nierozwiązanych zewnętrznych symbolu _sqlite3_open mowa w funkcji _MAIN
błąd krytyczny LNK1120: 2 nierozwiązanych zewnętrznymi
dodać plik .lib jako wejście łącznika, a nie pliku .dll. – Blindy
To wyczyściło ten błąd. Dziękuję Ci. Teraz otrzymuję nierozwiązane zewnętrzne błędy linkera symbolu dla każdego wywołania funkcji SQLite. Funkcje pojawiają się w intellisense, jeśli to wszystko ma znaczenie. –
Co to jest jeden z brakujących symboli? (Należy powiedzieć w błędzie) – dgnorton