Mac(M2 芯片)编译 Qt6 Mysql 驱动时的错误

180 天前
 Bssn

已安装:

尝试安装官网给的命令去构建驱动:

// 官网版本:
mkdir build-sqldrivers
cd build-sqldrivers
qt-cmake -G Ninja <qt_source_directory>/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DMySQL_ROOT="/usr/local/mysql"
cmake --build .
cmake --install .

// 修改后:
/Users/name/Qt/6.8.2/macos/bin/qt-cmake -G Ninja /Users/name/Qt/6.8.2/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/name/Qt/6.8.2/macos -DMySQL_ROOT="/opt/homebrew/opt/mysql-client"

这样是能够成功的,但是执行 cmake --build . 时会报错:

ld: symbol(s) not found for architecture x86_64
c++: error: linker command failed with exit code 1 (use -v to see invocation)
[14/16] Building CXX object sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/qsql_sqlite.cpp.o
[15/16] Building C object sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/Users/bssn/Qt/6.8.2/Src/qtbase/src/3rdparty/sqlite/sqlite3.c.o
ninja: build stopped: subcommand failed.

研究了好一会儿,但仍不知道怎么解决,求大佬指点~

1528 次点击
所在节点    Linux
6 条回复
kk2syc
180 天前
系统环境差异,你要检查下 makefile ,看看里面是不是写的 g++,改成 gcc 即可

错误:g++ -o exec main.o add.o
正确:gcc -o exec main.o add.o
julyclyde
180 天前
@kk2syc 这俩前端针对的语言都不一样吧,能互换?
Bssn
180 天前
@kk2syc 老哥,build-sqldrivers 目录下没有 makefile 文件呢,只有 build.ninja ,里面也没有搜到 g++,不知道怎么办了😭 我是小白,老哥勿怪😭
hwdq0012
180 天前
qt 在线安装器安装的库都是 x86_64 的,你的工具链,相关的链接都得用 x86_64 的才行,
或者你自己编译一下 qt arm64 的
Shatyuka
180 天前
架构不对
Bssn
180 天前
@hwdq0012 编译了一下 arm64 版本的 qt ,果然成功了,感谢指点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1117044

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX