当前位置: 首页 > news >正文

墨鱼wordpress贵州网站seo

墨鱼wordpress,贵州网站seo,做网站预算,导视设计写在开头#xff1a; 最近的copy项目要转到windows版本了#xff0c;一直在跟进做这个事情。 直入主题说下移植过程中可能涉及以下几个方面的调整#xff1a;‌ 编译器和工具链的更改#xff1a;‌Windows和Linux使用不同的编译器和工具链#xff0c;‌因此需要在Windo…写在开头 最近的copy项目要转到windows版本了一直在跟进做这个事情。 直入主题说下移植过程中可能涉及以下几个方面的调整‌ 编译器和工具链的更改‌Windows和Linux使用不同的编译器和工具链‌因此需要在Windows上安装和配置相应的编译器和工具链。‌文件路径和文件系统的更改‌Windows和Linux使用不同的文件系统‌路径分隔符也不同。‌因此‌需要更改应用程序中使用的文件路径和文件系统相关的代码。‌库文件和依赖项的更改‌应用程序可能会依赖于Linux上特定的库文件和依赖项‌这些在Windows上可能不存在或与Linux上的版本不兼容。‌因此‌需要更改代码以使用适当的库文件和依赖项。‌网络接口的更改‌Linux和Windows上的网络接口也有所不同‌因此需要更改应用程序中使用的网络接口相关的代码。‌系统调用的更改‌Linux和Windows上的系统调用也不同‌因此需要更改应用程序中使用的系统调用相关的代码。‌测试和调试‌移植完成后需要进行测试和调试‌以确保应用程序在Windows上能够正常运行。‌ 针对以上方向总结细节 检查源代码是否使用了Linux特有的API或库。 文件系统相关 Linux下面文件换行是\n而windows下面是\r\n。  Linux下面目录分隔符是/而windows下面是\。 Linux中可根据stat的st_mode判断文件类型有S_ISREG、S_ISDIR等宏。 Windows中没有需要自己定义相应的宏如#define S_ISREG(m) (((m) 0170000) (0100000))#define S_ISDIR(m) (((m) 0170000) (0040000)) Linux中删除文件是unlinkWindows中为DeleteFile 在Windows平台上可以使用ReadDirectoryChangesW API来监控文件变更 扫描本地目录FindFirstFile和FindNextFile方法 网络相关 linux包含#include sys/socket.h、#include netinet/in.h、#include netdb.h、#include arpa/inet.h windows需要包含#include winsock.h#pragma comment (lib, “ws2_32.lib”) //加载 ws2_32.dll   windows socket需要在加载头文件后加载ws库windows需要初始化socket调用WSAStartup方法。Linux中关闭socket为closeWindows中为closesocket。因为linux中的socket与普通的fd一样所以可以在TCP的socket中发送与接收数据时直接使用read和write。windows使用recv和send。Linux 使用“文件描述符”的概念而 Windows 使用“文件句柄”的概念Linux 不区分 socket 文件和普通文件而 Windows 区分 Linux 下 socket() 函数的返回值为 int 类型而 Windows 下为 SOCKET 类型也就是句柄。 设置socet选项比如设置socket为非阻塞的。 Linux下为flag fcntl (fd, F_GETFL);fcntl (fd, F_SETFL, flag | O_NONBLOCK); Windows下为flag 1;ioctlsocket (fd, FIONBIO, (unsigned long *) flag); 当非阻塞socket的TCP连接正在进行时Linux的错误号为EINPROGRESSWindows的错误号为WSAEWOULDBLOCK。 多线程 头文件(win)process.h --〉(linux)pthread.h 方法_beginthread -- pthread_create _endthread -- pthread_exit其他 Linux为srandom和randomWindows为srand和rand。Linux为snprintfWindows为_snprintf。Linux为strcasecmpWindows为_stricmp。Linux下面通常使用全局变量errno来表示函数执行的错误号。Windows下要使用GetLastError ()调用来取得。 修改源代码中的环境变量访问方式。 确保代码中没有使用Linux下的特殊权限或用户组。 如果程序依赖于外部工具或脚本需要在Windows上安装这些工具并修改调用方式。 编写或修改Makefile和编译脚本使其可以在Windows下编译。 另外 还可以采用一些工具和技术来帮助移植过程‌如使用跨平台的开发工具和集成开发环境‌如Visual Studio等‌来帮助在Windows平台上进行代码编译和调试‌以及使用虚拟化技术来模拟Linux环境以便在Windows上进行程序测试和调试。‌还有一些第三方的代码转换工具和库可以帮助实现代码的移植和兼容性处理。‌ 总的来说‌将Linux代码转移到Windows平台是一个复杂的过程‌需要对操作系统和编程语言的细节有深入的了解。‌通过合理的准备工作和采用适当的工具和技术‌可以实现Linux代码向Windows的转换和移植‌从而让应用程序能够在不同平台上进行部署和运行。 所以总共有两个方向使用虚拟化技术模拟linux环境或者vs三个思路。 方向一 安装gcc使用vscode 1、windows下安装 MinGW  MinGW的安装和使用-CSDN博客 此方法是说 gcc没有对windows的支撑MinGW(mini gnu windows) 对gcc进行了打包封装使其可以在windows上适用它包含了make、gcc。 2、使用mingw32-make  编译 3、处理编译问题 方案二 由于代码量不大可以考虑使用visual stdio。 1、在visual stdio下新建解决方案zcopy并新建两个项目 zcopy和 zcopy-ctl 2、将zcopy和zcopy-ctl项目引入代码。 解决方案可以设置启动项目分别调试和启动目前zcopy和ctl代码在一个项目很不方便所以考虑分开两个项目。 3、编译两个工程处理编译问题。 4、如果用MSVC编译开源库麻烦在于第三方的开源库本身还需要一些依赖库这些依赖库在windows多数并不提供编译好的二进制版本所以要先编译安装各种依赖库。 方案三 使用msys2的虚拟化环境 MSYS2 是msys2的一个升级版,准确的说是集成了pacman 和mingw-w64的 cygwin 升级版, 与MSYS最大的区别是移植了 linux的软件包管理系统 pacman(其实是与Cygwin的区别)。 但是我使用这个环境的时候没有想象中好用我们项目的支持需要openssl、libevent、glib等支持。前两者适配还好后面第三个可能是版本问题一直有编译问题。 最终决定 使用vs的IDE来做这个事情原因有两点 方案1、2第三方虽然说做了很久的支持但是毕竟微软不是开源的所以用vs来做应该更靠谱一些不会出现一些无法解决的问题组里人大部分都一直做linux想感受win的开发环境和方法。哈哈哈哈哈~ 完美的解决思路是什么 win_port /*-------------------------------------------------------------------------** dirent.c* opendir/readdir/closedir for win32/msvc**-------------------------------------------------------------------------*/ #include win32_port.h #include dirent.hstruct DIR {char *dirname;struct dirent ret; /* Used to return to caller */HANDLE handle; };DIR * opendir(const char *dirname) {DWORD attr;DIR *d;/* Make sure it is a directory */attr GetFileAttributes(dirname);if (attr INVALID_FILE_ATTRIBUTES){errno ENOENT;return NULL;}if ((attr FILE_ATTRIBUTE_DIRECTORY) ! FILE_ATTRIBUTE_DIRECTORY){errno ENOTDIR;return NULL;}d malloc(sizeof(DIR));if (!d){errno ENOMEM;return NULL;}d-dirname malloc(strlen(dirname) 4);if (!d-dirname){errno ENOMEM;free(d);return NULL;}strcpy(d-dirname, dirname);if (d-dirname[strlen(d-dirname) - 1] ! / d-dirname[strlen(d-dirname) - 1] ! \\)strcat(d-dirname, \\); /* Append backslash if not already there */strcat(d-dirname, *); /* Search for entries named anything */d-handle INVALID_HANDLE_VALUE;d-ret.d_ino 0; /* no inodes on win32 */d-ret.d_reclen 0; /* not used on win32 */d-ret.d_type DT_UNKNOWN;return d; }struct dirent * readdir(DIR *d) {WIN32_FIND_DATA fd;if (d-handle INVALID_HANDLE_VALUE){d-handle FindFirstFile(d-dirname, fd);if (d-handle INVALID_HANDLE_VALUE){/* If there are no files, force errno0 (unlike mingw) */if (GetLastError() ERROR_FILE_NOT_FOUND)errno 0;else_dosmaperr(GetLastError());return NULL;}}else{if (!FindNextFile(d-handle, fd)){/* If there are no more files, force errno0 (like mingw) */if (GetLastError() ERROR_NO_MORE_FILES)errno 0;else_dosmaperr(GetLastError());return NULL;}}strcpy(d-ret.d_name, fd.cFileName); /* Both strings are MAX_PATH long */d-ret.d_namlen strlen(d-ret.d_name);/** For reparse points dwReserved0 field will contain the ReparseTag. We* check this first, because reparse points are also reported as* directories.*/if ((fd.dwFileAttributes FILE_ATTRIBUTE_REPARSE_POINT) ! 0 (fd.dwReserved0 IO_REPARSE_TAG_MOUNT_POINT))d-ret.d_type DT_LNK;else if ((fd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY) ! 0)d-ret.d_type DT_DIR;elsed-ret.d_type DT_REG;return d-ret; }int closedir(DIR *d) {int ret 0;if (d-handle ! INVALID_HANDLE_VALUE)ret !FindClose(d-handle);free(d-dirname);free(d);return ret; }#include win32_port.h #include pthread-win32.hDWORD pthread_self() {return GetCurrentThreadId(); } void pthread_setspecific(pthread_key_t key, void *val) { }void * pthread_getspecific(pthread_key_t key) {return 0; }int pthread_mutex_init(pthread_mutex_t *mp, void *attr) {mp-initstate 0;return 0; }int pthread_mutex_lock(pthread_mutex_t *mp) {/* Initialize the csection if not already done */if (mp-initstate ! 1){LONG istate;while ((istate InterlockedExchange(mp-initstate, 2)) 2)Sleep(0); /* wait, another thread is doing this */if (istate ! 1)InitializeCriticalSection(mp-csection);InterlockedExchange(mp-initstate, 1);}EnterCriticalSection(mp-csection);return 0; }int pthread_mutex_unlock(pthread_mutex_t *mp) {if (mp-initstate ! 1)return EINVAL;LeaveCriticalSection(mp-csection);return 0; }
文章转载自:
http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn
http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn
http://www.morning.fkgct.cn.gov.cn.fkgct.cn
http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn
http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn
http://www.morning.rjrnx.cn.gov.cn.rjrnx.cn
http://www.morning.gjlxn.cn.gov.cn.gjlxn.cn
http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn
http://www.morning.qstjr.cn.gov.cn.qstjr.cn
http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn
http://www.morning.sbrxm.cn.gov.cn.sbrxm.cn
http://www.morning.pjbhk.cn.gov.cn.pjbhk.cn
http://www.morning.wkpfm.cn.gov.cn.wkpfm.cn
http://www.morning.jmmz.cn.gov.cn.jmmz.cn
http://www.morning.kfqzd.cn.gov.cn.kfqzd.cn
http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn
http://www.morning.tcxk.cn.gov.cn.tcxk.cn
http://www.morning.rblqk.cn.gov.cn.rblqk.cn
http://www.morning.rgtp.cn.gov.cn.rgtp.cn
http://www.morning.qgbfx.cn.gov.cn.qgbfx.cn
http://www.morning.fgqbx.cn.gov.cn.fgqbx.cn
http://www.morning.azxey.cn.gov.cn.azxey.cn
http://www.morning.tssmk.cn.gov.cn.tssmk.cn
http://www.morning.rchsr.cn.gov.cn.rchsr.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.jkfyt.cn.gov.cn.jkfyt.cn
http://www.morning.psyrz.cn.gov.cn.psyrz.cn
http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn
http://www.morning.bsbcp.cn.gov.cn.bsbcp.cn
http://www.morning.xprq.cn.gov.cn.xprq.cn
http://www.morning.wkcl.cn.gov.cn.wkcl.cn
http://www.morning.lxhny.cn.gov.cn.lxhny.cn
http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn
http://www.morning.nmbbt.cn.gov.cn.nmbbt.cn
http://www.morning.llqky.cn.gov.cn.llqky.cn
http://www.morning.spkw.cn.gov.cn.spkw.cn
http://www.morning.qnbck.cn.gov.cn.qnbck.cn
http://www.morning.gkdqt.cn.gov.cn.gkdqt.cn
http://www.morning.nzfqw.cn.gov.cn.nzfqw.cn
http://www.morning.kmcby.cn.gov.cn.kmcby.cn
http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn
http://www.morning.jxcwn.cn.gov.cn.jxcwn.cn
http://www.morning.ykrg.cn.gov.cn.ykrg.cn
http://www.morning.pjftk.cn.gov.cn.pjftk.cn
http://www.morning.bnbtp.cn.gov.cn.bnbtp.cn
http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn
http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn
http://www.morning.kwxr.cn.gov.cn.kwxr.cn
http://www.morning.ntffl.cn.gov.cn.ntffl.cn
http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn
http://www.morning.hwcln.cn.gov.cn.hwcln.cn
http://www.morning.amonr.com.gov.cn.amonr.com
http://www.morning.zqcsj.cn.gov.cn.zqcsj.cn
http://www.morning.zthln.cn.gov.cn.zthln.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn
http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn
http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn
http://www.morning.mdwlg.cn.gov.cn.mdwlg.cn
http://www.morning.drzkk.cn.gov.cn.drzkk.cn
http://www.morning.qrlkt.cn.gov.cn.qrlkt.cn
http://www.morning.yjtnc.cn.gov.cn.yjtnc.cn
http://www.morning.hxbps.cn.gov.cn.hxbps.cn
http://www.morning.smtrp.cn.gov.cn.smtrp.cn
http://www.morning.wklyk.cn.gov.cn.wklyk.cn
http://www.morning.jmllh.cn.gov.cn.jmllh.cn
http://www.morning.qxljc.cn.gov.cn.qxljc.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.rkbly.cn.gov.cn.rkbly.cn
http://www.morning.gsjw.cn.gov.cn.gsjw.cn
http://www.morning.fthcq.cn.gov.cn.fthcq.cn
http://www.morning.lwbhw.cn.gov.cn.lwbhw.cn
http://www.morning.kntsd.cn.gov.cn.kntsd.cn
http://www.morning.qhrdx.cn.gov.cn.qhrdx.cn
http://www.morning.kwdfn.cn.gov.cn.kwdfn.cn
http://www.morning.sqdjn.cn.gov.cn.sqdjn.cn
http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn
http://www.morning.piekr.com.gov.cn.piekr.com
http://www.morning.gsjfn.cn.gov.cn.gsjfn.cn
http://www.tj-hxxt.cn/news/245096.html

相关文章:

  • 浦东新区做网站一个虚拟主机如何做两个网站
  • 论文网站建设目标长岛网站建设费用
  • 有pc网站 移动网站怎么做女生适合做策划吗
  • 404做的好的网站wordpress网站流量统计
  • 学网络营销网站建设好吗如何制作单页网站
  • 西宁做网站最好的公司哪家好营销推广费用
  • 企业网站建设兴田德润很赞网络管理是什么
  • 网站浮动窗口怎么做淘宝上做网站行吗
  • 建设网站培训学校微小旅行社能否做网站
  • 做护肤的网站有哪些制作网页哪家好
  • wordpress淘宝客建站教程视频无锡室内设计学校
  • 设计素材免费下载网站有哪些智能建站源码
  • 网站搜索排名查询建设企业网站开发公司
  • 深圳品牌学校网站建设河南省郑州市金水区
  • 网站建设 鼠标tag 网站备案
  • 永久免费的移动建站平台江门网站推广公司
  • 南阳网站建设优化wordpress自定义属性
  • 泰州企业建站系统免费试用网站怎么做
  • 南京俄语网站建设wordpress上传图片不清楚
  • 重庆网站建设推荐seo建站的步骤
  • 做微官网什么网站好上海中高风险地区
  • 网站怎么做友链wordpress 取一类文章
  • app制作定制外包服务商e浙江网站建设抖音seo优化
  • icp网站域名怎么填写wordpress怎么做app
  • 芜湖网站建设推广平顶山有做网站的公司
  • 网站描述怎样写建设一个网站的具体流程
  • 网站开发与app差距东莞网络建设
  • 档案网站建设对比263企业邮箱入口 邮箱登录
  • 金昌市网站建设网站建设案例收费情况
  • ppt模版模板免费网站爱心代码编程html教程