原帖由 rsuhkoi 于 2008-8-29 19:01 发表
最近在做移植,将Linux下的C程序移植到Windows下。程序在Linux下编译没有任何问题,当在mingw下使用gcc 3.4编译的时候,居然报错:mysql.h :307,token “@” is not a valid preprocessor expressions。打开一 ...
原帖由 rsuhkoi 于 2008-8-29 22:02 发表
是你要我贴的,我也没有办法。其实gcc出错的地方是下面的三行:
my_bool *unbuffered_fetch_owner;
#if defined(EMBEDDED_LIBRARY) || defined(EMBEDDED_LIBRARY_COMPATIBLE) || MYSQL_VERSION_ID >= 50100 ...
原帖由 rsuhkoi 于 2008-8-30 10:15 发表
我用gcc -E 处理了头文件,发现gcc把 MYSQL_VERSION_ID >= 50100 中的M这个字符当作了@,真是莫名其妙。这个文件中估计有好几十个M,但是唯独这个M被当作了@,真是很奇怪
原帖由 rsuhkoi 于 2008-8-30 13:05 发表
我用你说的办法最终追查到是在一个这样的文件:
/* Copyright Abandoned 1996, 1999, 2001 MySQL AB
This file is public domain and comes with NO WARRANTY of any kind */
/* Version numbers for p ...
原帖由 rsuhkoi 于 2008-8-30 13:36 发表
在linux以及freebsd下都是没有问题的。这些头文件都是mysql提供的源码中的一部分。不过我的程序只是引用了他的这几个头文件。我怀疑和gcc的编译选项有关系。我去看看mysql源码中的编译选项,看能不能搞定这个问题。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |