一、编译报错
问题描述:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/libjsoncpp.so: undefined reference to `memcpy@GLIBC_2.14'。
原因分析:首先明确该问题是GCC版本不同导致的。不同指的是编译库的GCC版本和编译应用程序的GCC版本不同。
libjsoncpp.so是在虚拟机上编译的,GCC版本是4.4.6,而在服务器上编译程序时用的GCC版本是4.4.7,存在不兼容。
解决方式:在服务器端编译jsoncpp库。
二、更新数据库错误
问题描述:
执行sql语句"update corp set XhtCorpID=corpid where id=(select max(id) from corp);"时,报如下错误:
mysql_query error: 1093 You can't specify target table 'corp' for update in FROM clause。
原因分析:mysql不允许update目标表和子查询里面的表为同一张表。
解决如下:子查询sql可以改为双层的子查询。
"update corp set XhtCorpID=corpid where id=(select max(id) from (select id from corp));"
运行上述sql依然报如下的错:
mysql_query error: 1248 Every derived table must have its own alias。
派生的表要有别名。更改语句如下:
"update corp set XhtCorpID=corpid where id=(select max(id) from (select id from corp) as tmp);"
即:tmp就是(select id from corp) 的别名。
联系客服