程序从linux 移植到 windows 出问题.mingw+msys
我有一个ffmpeg修改后的程序在linux 下可以编译运行,用mingw+msys移植到windows 后。编译<bit/socket.h> <sys/socket.h> 这两个文件总是出错,好几十行代码出现
parse erro __uint_64 undefined refernce 等
parse erro before " {" token
parse erro before "*" token
../mysql/include/mysql.h:789: parse error before '*' token
../mysql/include/mysql.h:790: parse error before '*' token
../mysql/include/mysql.h:791: parse error before '*' token
../mysql/include/mysql.h:792: parse error before '*' token
../mysql/include/mysql.h:794: parse error before '*' token
../mysql/include/mysql.h:795: parse error before '*' token
../mysql/include/mysql.h:796: parse error before '*' token
../mysql/include/mysql.h:797: parse error before '*' token
../mysql/include/mysql.h:798: parse error before '*' token
..........
但是这些代码在linux 下是可以编译的。
问题是不是出在不同平台的宏定义不一样,那请问怎么解决啊.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
还有一个问题 如果我想在 windows 下使用mysql 的库进行 C 开发。应该从哪里找到mysql 的库。 我有 linux 下的mysql 静态库 都以 .a 结尾 怎么使用它们呢? 谢谢?
CSDN 的 “大雪” 师傅给的答案
“
只能说是给点建议。
看上去像是__sigset_t没有定义,这个应该在
/usr/include/bits/sigset.h
你看看这个文件存在否,
是否有__sigset_t的定义
是否被pthread.h包含
”
---------------------------
按他说的方法可以编译运行,很感谢。
我的一点初步想法, linux 和 mingw 的库结构,库内的文件是不一样的,所以在linux 下可以编译,到 mingw 下就不能编译了。水平不高,大家有好的想法可以说一说啊 。
可是,如果要按这个方法改mingw的库里的头文件,工作量太大了,因为我的程序里用了sql socket 的库。 用cygwin怎么样?正在试。谢谢。
再说一个编译遇到的问题。在linux 下可以编译移植到windows 下用mingw + msys 编译出错。提示如下:
In file included from c:/mingw/include/pthread.h:659,
from tack_mt.h:25,
from tack_mt.c:21:
c:/mingw/include/bits/sigthread.h:32: parse error before '*' token
make: *** [tack_mt.o] Error 1
sigthread.h:32: 的代码摘录如下.
31: extern int pthread_sigmask (int __how,
32: __const __sigset_t *__restrict __newmask,
33: __sigset_t *__restrict __oldmask)__THROW;
给些建议吧,谢谢先。