我试图在我的cpp项目中包含一个sqlite3但是在编译时它会给出以下错误:
g ++ -c -std = c ++ 11 -g src / Main.cpp -I“C:/ Mycode / src / DB” -L“C:/ Mycode / src / DB”-lsqlite3
g ++ -g -o Main.exe Main.o Data.o SqliteApi.o -lws2_32 -L“C:/ Mycode / src / DB”-lsqlite3
C:/Mycode/src/DB/sqlite3.dll:无法识别文件:无法识别文件格式
collect2.exe:错误:ld返回1退出状态
make:*** [Mycode.exe]错误1
我觉得在最后的链接时间里它会给出错误。 我使用自己的make文件进行编译,下面是我正在使用的make命令:
DB_DIR="C:/Mycode/src/DB"
clean:
rm Main.o Main.exe
Main.exe: Main.o Data.o SqliteApi.o
g++ -g -o Main.exe Main.o Data.o SqliteApi.o -lws2_32 -L${DB_DIR} -lsqlite3
Main.o: src/Main.cpp
g++ -c -std=c++11 -g src/Main.cpp -I${DB_DIR} -lsqlite3
Data.o: src/Data.cpp
g++ -c -std=c++11 -g src/Data.cpp
SqliteApi.o: src/SqliteApi.cpp
g++ -c -std=c++11 -g src/SqliteApi.cpp
我用Google搜索了但是我找不到任何有关此错误的解决方案或建议。 任何帮助将不胜感激。
答案 0 :(得分:0)
recommended way of using the SQLite library是将amalgamation源文件直接编译到你的程序中:
Main.exe: Main.o Data.o SqliteApi.o
g++ -g -o Main.exe Main.o Data.o SqliteApi.o sqlite3.o -lws2_32
sqlite3.o: src/sqlite3.c
gcc -c ... src/sqlite3.c