我正在尝试从源代码安装 MySQL 作为 uni 项目的一部分 - 这是我以前从未做过的事情 - 并且在尝试时收到以下错误消息make
:
[ 79%] Building CXX object sql/CMakeFiles/sql.dir/mysqld.cc.o
/home/me/mysql-5.5.17/sql/mysqld.cc: In function ‘void handle_connections_sockets()’:
/home/me/mysql-5.5.17/sql/mysqld.cc:5270:31: error: invalid conversion from ‘size_socket* {aka int*}’ to ‘socklen_t* {aka unsigned int*}’ [-fpermissive]
/usr/include/i386-linux-gnu/sys/socket.h:214:12: error: initializing argument 3 of ‘int accept(int, sockaddr*, socklen_t*)’ [-fpermissive]
/home/me/mysql-5.5.17/sql/mysqld.cc:5337:48: error: invalid conversion from ‘int*’ to ‘socklen_t* {aka unsigned int*}’ [-fpermissive]
/usr/include/i386-linux-gnu/sys/socket.h:119:12: error: initializing argument 3 of ‘int getsockname(int, sockaddr*, socklen_t*)’ [-fpermissive]
make[2]: *** [sql/CMakeFiles/sql.dir/mysqld.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
我完全不知道该如何修复这个问题,因为这似乎是 C++ 代码本身的问题。有没有人有更了解的解决办法?
编辑:我正在安装 mySQL 5.5.17
答案1
答案2
为了克服在构建包的源代码时遇到的此类问题,我采取了以下措施:
- 仔细检查 configure 脚本的输出。您可能会收到一些重要的警告,但您没有注意到它们。有时,您可能会缺少一些包。
make clean
尝试在使用或再次构建之前清理您的构建make distclean
。- 如果这不起作用,您还可以尝试不同版本的软件包以消除最近的错误的选项。