QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 906|回复: 6

Porting to Windows from Linux

[复制链接]
发表于 2005-5-18 11:09:33 | 显示全部楼层 |阅读模式
將linux下的dmidecode源碼直接在windows的Dev-C++中編譯,出現如下錯誤:

Compiler: Default compiler
Executing  gcc.exe...
gcc.exe "E:\dmidecode.c" -o "E:\dmidecode.exe"   -ansi -pg -g3  -I"D:\Dev-Cpp\include"   -L"D:\Dev-Cpp\lib" -L".\" -lgmon -pg  -g3
E:\Temp/cci8aaaa.o(.text+0x6683): In function `dmi_table':
E:/dmidecode.c:3749: undefined reference to `mem_chunk'
E:\Temp/cci8aaaa.o(.text+0x67fa): In function `smbios_decode':
E:/dmidecode.c:3793: undefined reference to `checksum'
E:\Temp/cci8aaaa.o(.text+0x683e):E:/dmidecode.c:3793: undefined reference to `checksum'
E:\Temp/cci8aaaa.o(.text+0x68f9): In function `legacy_decode':
E:/dmidecode.c:3810: undefined reference to `checksum'
E:\Temp/cci8aaaa.o(.text+0x6b6b): In function `main':
E:/dmidecode.c:3943: undefined reference to `mem_chunk'
collect2: ld returned 1 exit status

Execution terminated

請問:
1. 如何避免這個Linker Error: undefined reference to 'xxx'?
2. 可以將linux程序的source code直接向這樣拿到Dev-C++中編譯成EXE嗎? porting時注意什麼?

謝謝!
发表于 2005-5-18 11:51:47 | 显示全部楼层
这么粗暴的移植方法...........
回复

使用道具 举报

 楼主| 发表于 2005-5-18 11:57:50 | 显示全部楼层
請教請教~
那麼, 該怎麼移植?
上面應該是都編譯過了, 為什麼會Link的時候出問題?
回复

使用道具 举报

发表于 2005-5-18 12:37:31 | 显示全部楼层
最常见的简单方案有两个
Cygwin:编译出来的程序依赖的Cygwin的dll库自己用Dependency Walker查一下吧
Windows Services for UNIX:微软的网站上有下载,可以自由使用。

只要你的程序只使用了标准c,c++,和posix的东西,这两个东西都可以不经修改
直接编译运行你的程序。
回复

使用道具 举报

发表于 2005-5-18 12:39:17 | 显示全部楼层
Dev-C++是用gcc开发windows程序的。所以Dev-C++不能自动帮助你一直。
回复

使用道具 举报

 楼主| 发表于 2005-5-18 15:30:16 | 显示全部楼层
既然已有這樣的問題, 版主大人何不以此為例, 來個Porting Guide, 造福大眾. 當然也救救我.
回复

使用道具 举报

发表于 2005-5-18 21:24:52 | 显示全部楼层
这个 linux 论坛上好像没什么人在搞 linux -> win 的移植吧,反过来倒可能人多点...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 00:32 , Processed in 0.049484 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表