У меня есть пример кода с сайта sqlite.
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char* argv[]) {
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if( rc ) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
} else {
fprintf(stderr, "Opened database successfully\n");
}
sqlite3_close(db);
}
Я поместил приведенный выше код в test12_sqlite_database.cpp и поместил заголовок sqlite и исходный файл в каталог include. Затем я хочу создать этот код с помощью cl.exe. Это команда сборки:
cl /EHsc test12_sqlite_database.cpp /I include /link d:\sqlite\sqlite3.dll
Ошибка:
d:\sqlite\sqlite3.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x360
После поиска в Интернете мне сказали, что я не могу подключиться к динамической библиотеке. Итак, как использовать cl, чтобы исходный код мог успешно скомпилироваться и мог использовать динамическую библиотеку?
/link
. Это для передачи дополнительных параметров компоновщику и не требуется только для включения файла библиотеки (который должен быть указан так же, как имя файла, точно так же, как исходные файлы или объектные файлы). .lib, а не sqlite3.dll. - person Shawn   schedule 04.10.2018