如何用Dev-CPP或VC++编译http://sourceforge.net/projects/cchess

masterz 2005-09-18 10:45:10
对于Dev-CPP不熟,编译http://sourceforge.net/projects/cchess源代码出错不会修改,请指教
http://sourceforge.net/tracker/index.php?func=detail&aid=705285&group_id=75263&atid=543406
I also have difficulty in compiling the source code via
Dev-CPP 4.9.9.2 on windows.
I have downloaded SDL library and put SDL.lib,SDL_mixer.lib,
SDLmain.lib on the same directory as SDL_demo.dev
the absolute path of SDL_mixer.lib is also updated in
SDL_demo.dev
Now I have the following error:
Compiler: Default compiler
Building Makefile: "D:\Onega\test\cchess\Makefile.win"
Executing make...
make.exe -f "D:\Onega\test\cchess\Makefile.win" all
gcc.exe main.o token.o button.o chess.o combox.o edit.o
font.o game.o map.o obj_list.o pvsp.o rules.o selimg.o
block.o window.o trace.o audio.o -o "cchess.exe"
-L"d:/apps/Dev-Cpp/lib" -mwindows -lwsock32 -lmingw32
-lSDLmain -lSDL -mwindows
"D:/Onega/test/cchess/SDL_mixer.lib" -lobjc

d:\apps\Dev-Cpp\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\
bin\ld.exe:
cannot find -lSDLmain
collect2: ld returned 1 exit status

make.exe: *** [cchess.exe] Error 1

Execution terminated
如果能提供vc++工程就更好了:-)
...全文
290 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoenix96_2000 2005-09-19
  • 打赏
  • 举报
回复
http://www2.tw.freebsd.org/cygwin/release/gcc-mingw/gcc-mingw-objc/


是gcc的规定吧,这样才能用-l参数, lib目录下面的都是libxxx.a 对应着 VC的lib的xxx.lib文件,
linux下也是这样的.


另外,
解决undefined references to '_alloca_probe' 的问题还要加上winmm的引用 -lwinmm
teli_eurydice 2005-09-19
  • 打赏
  • 举报
回复
呵呵,比较困难了,希望有人知道,up
masterz 2005-09-19
  • 打赏
  • 举报
回复
C++版也提了一个问题,
http://community.csdn.net/Expert/TopicView3.asp?id=4278171
但我相信VC版也能解决这个问题。
什么地方有libobjc.a下载?我下载gcc-4.0.1.tar.bz2 31001 KB 2005-7-8 1:32:00,它里面包含了libobjc的源代码,没有lib文件。

-lobjc 为什么对应的是libojbc.a而不是objc.a?
masterz 2005-09-19
  • 打赏
  • 举报
回复
我下载了http://www2.tw.freebsd.org/cygwin/release/gcc-mingw/gcc-mingw-objc/gcc-mingw-objc-20050522-1.tar.bz2,把libobjc.a放在以下目录
D:\Apps\Dev-Cpp\lib\libobjc.a
去掉-lSDLmain -lSDL这两个参数,在Dev-CPP中project options ->parameters: linker下面加上 "SDL.a" "SDLMain.a"

D:\Onega\test\cchess\SDL.a
D:\Onega\test\cchess\SDLmain.a

把D:\Onega\test\cchess\main.c文件中main() 改为winmain()
int APIENTRY WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
/*INT main(INT argc,CHAR * argv[])*/
{
GlobalInit();
Game_UIMain();
Game_Exec();
}
编译成功。没有遇到undefined references to '_alloca_probe' 的问题
非常感谢phoenix96_2000(eXMe)的指导!
phoenix96_2000 2005-09-19
  • 打赏
  • 举报
回复
从0点到1:40,忙乎了2个小时,终于搞定了,呵呵~~
刚才放弃了修正multiple definition of "main"的错误
先去改另外一个错误 什么undefined references to '_alloca_probe'错误,搜索到libSDL.org的maillist里面, 有个mail回复里面提到了参数设置-mwindows的含义,
-mwindows 对应 WinMain
-mconsole 对应 main
于是试了试把main.c里面的main改为WinMain的定义,bingo~! 运行也没问题~

偶也从来没用过dev-c++,帮助文档什么都没有啊,出现个编译错误不知道为什么,只能到google搜索~,晕死了~
睡觉,明天上班~~




phoenix96_2000 2005-09-19
  • 打赏
  • 举报
回复
我也编译了一把,
比你编译结果远一点,但是还是没成功
你那个编译错误,两个方法解决
1. -lSDLMain 和 -lSDL就是指定sdlmain和sdl两个lib库,把SDL.lib 和SDLmain.lib重新命名为 libsdl.a 和libsdlmain.a
2. 去掉这两个参数,换成 "SDL.lib" "SDLMain.lib"

另外还去下载了libobjc.a放到lib目录下面

但是编译出现 multiple definition of "main" 错误,搜索了google,好像这种问题是main定义没有和SDL_main一致,但是cchess中的的确一致,就不知道怎么搞了..
菜牛 2005-09-18
  • 打赏
  • 举报
回复
五星上将的提问第一次看到,一定要看看。
pomelowu 2005-09-18
  • 打赏
  • 举报
回复
不如转到C/C++版去问问

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧