[求助]MAKEFILE使用中时出现的问题
在使用HGE时....自己手动写了一个makefile做测试HGE_PATH=-Ie:/extralibraries/hge/hge17/include
HGE_LIB_DIR=e:/extralibraries/hge/hge17/lib/gcc/libhge.a
main:main.o
g++main.o -o main.exe
main.o:main.cpp
g++ -Wall -Wextra -pedantic -c main.cpp ${HGE_PATH} ${HGE_LIB_DIR} -o main.o
在MAKE时出现:
g++main.o -o main.exe
main.o:eh_throw.cc:(.text+0x280): multiple definition of `mainCRTStartup'
/mingw/lib/crt2.o:crt1.c:(.text+0x280): first defined here
main.o:eh_throw.cc:(.text+0x2a0): multiple definition of `WinMainCRTStartup'
/mingw/lib/crt2.o:crt1.c:(.text+0x2a0): first defined here
main.o:eh_throw.cc:(.text+0x2c0): multiple definition of `atexit'
/mingw/lib/crt2.o:crt1.c:(.text+0x2c0): first defined here
main.o:eh_throw.cc:(.text+0x2d0): multiple definition of `_onexit'
/mingw/lib/crt2.o:crt1.c:(.text+0x2d0): first defined here
main.o: In function `_gxx_personality_sj0':
e:/gcc-4.2.1/mingw32/libstdc++-v3/libsupc++/../../.././libstdc++-v3/libsupc++/eh_personality.cc:640: multiple definition of `_argc'
/mingw/lib/crt2.o:crt1.c:(.bss+0x4): first defined here
main.o: In function `_gxx_personality_sj0':
e:/gcc-4.2.1/mingw32/libstdc++-v3/libsupc++/../../.././libstdc++-v3/libsupc++/eh_personality.cc:640: multiple definition of `_argv'
/mingw/lib/crt2.o:crt1.c:(.bss+0x0): first defined here
collect2: ld returned 1 exit status
mingw32-make: *** Error 1
但是换一种方式却可以通过
HGE_PATH=-Ie:/extralibraries/hge/hge17/include
HGE_LIB_DIR=e:/extralibraries/hge/hge17/lib/gcc/libhge.a
main:main.o
g++main.cpp${HGE_PATH} ${HGE_LIB_DIR} -o main.exe
应该如何解释???? 试试看在上面那个
main.o:main.cpp
g++ -Wall -Wextra -pedantic -c main.cpp ${HGE_PATH} ${HGE_LIB_DIR} -o main.o
中把-o去掉…………
偶一般用NMAKE的,-out参数通常是在LINK的时候才使用…… 失败效果还是一个样子... 话说如果要是没有-o的话好像连编译也无法进行吧 已解决.....
HGE_PATH=-Ie:/extralibraries/hge/hge17/include
HGE_LIB_DIR=e:/extralibraries/hge/hge17/lib/gcc/libhge.a
main:main.o
g++main.o ${HGE_PATH} ${HGE_LIB_DIR} -o main.exe
main.o:main.cpp
g++ -Wall -Wextra -pedantic -c main.cpp ${HGE_PATH}
这样就KO了...看来还是对参数不熟啊..... 嗯,你的LIBDIR居然使用了一个文件,那个名字就应该直接用XXXLIB ^^
通常XXX_DIR表示一个引用的路径~
也怪自己不看仔细~
多玩玩就可以了,其实偶也打算学GNU MAKE,因为NMAKE不支持内插循环,有时候简单的问题会比较难以处理,还得先用BAT等处理掉循环的东西……
PS:HGE1.7拉…… 事实上本来是LIB的路径...后来临时替换了....
页:
[1]