Compiling FWH Tutor01-08 with VC98 Errors in link

Compiling FWH Tutor01-08 with VC98 Errors in link

Postby paulrhanson » Mon Sep 22, 2008 7:31 am

Dear Antonio,

I used the vc98 you suggested last week and am running it with the harbour MS version downloaded from the FT site. I've been trying to compile & link my application without success.

Today I decided to try just compiling and linking the TUTOR01 sample application provided with my FWH. I get some very similar errors.

I figure at this point, I should get the sample programs to work before I work more on my application.

By the way, if I use the Borland 55 compiler with the FT Harbour Borland version, TUTOR01 compiles and runs fine.

I'd like to get the vc98 to work.

Thanks Antonio, Paul

Here is the output from the vc98 attempt on TUTOR01:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ FiveWin for Harbour 2.8 (MSVC++) November 2008 Harbour development power ³Ü
³ (c) FiveTech, 1993-2008 for Microsoft Windows 95/98/NT/2000/ME and XP ³Û
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
Compiling...
tutor01.c
gtgui.lib(gtgui.obj) : warning LNK4006: _HB_FUN_HB_GT_GUI_DEFAULT already defined in FiveHM.lib(ERRSYSW.obj); second definition ignored
LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPPOPUP
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPINDEX
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPTOPIC
FiveHCM.lib(BRUSHES.obj) : error LNK2001: unresolved external symbol __imp__AlphaBlend@44
tutor01.exe : fatal error LNK1120: 4 unresolved externals
* There are errors

This is a copy of the BUILDH.BAT I'm using:
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 2.8 (MSVC++) November 2008 Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2008 for Microsoft Windows 95/98/NT/2000/ME and XP ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\harbourm
set vcdir=c:\vc98
set include=%vcdir%\include;%hdir%\include;%include%
set lib=%vcdir%\lib;%hdir%\lib;%lib%

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /w /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

%vcdir%\bin\cl -TP -W3 -c /GA %1.c
:ENDCOMPILE

IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1

echo %1.obj > msvc.tmp

echo ..\lib\FiveHM.lib ..\lib\FiveHCM.lib >> msvc.tmp

echo %hdir%\lib\hbrtl.lib >> msvc.tmp
echo %hdir%\lib\hbvm.lib >> msvc.tmp
echo %hdir%\lib\gtgui.lib >> msvc.tmp
echo %hdir%\lib\hblang.lib >> msvc.tmp
echo %hdir%\lib\hbmacro.lib >> msvc.tmp
echo %hdir%\lib\hbrdd.lib >> msvc.tmp
echo %hdir%\lib\rddntx.lib >> msvc.tmp
echo %hdir%\lib\rddcdx.lib >> msvc.tmp
echo %hdir%\lib\rddfpt.lib >> msvc.tmp
echo %hdir%\lib\hbsix.lib >> msvc.tmp
echo %hdir%\lib\hbdebug.lib >> msvc.tmp
echo %hdir%\lib\hbcommon.lib >> msvc.tmp
echo %hdir%\lib\hbpp.lib >> msvc.tmp
echo %hdir%\lib\hbcpage.lib >> msvc.tmp
echo %hdir%\lib\hbw32.lib >> msvc.tmp

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib >> msvc.tmp
rem echo %hdir%\lib\ace32.lib >> msvc.tmp

echo %vcdir%\lib\kernel32.lib >> msvc.tmp
echo %vcdir%\lib\user32.lib >> msvc.tmp
echo %vcdir%\lib\gdi32.lib >> msvc.tmp
echo %vcdir%\lib\winspool.lib >> msvc.tmp
echo %vcdir%\lib\comctl32.lib >> msvc.tmp
echo %vcdir%\lib\comdlg32.lib >> msvc.tmp
echo %vcdir%\lib\advapi32.lib >> msvc.tmp
echo %vcdir%\lib\shell32.lib >> msvc.tmp
echo %vcdir%\lib\ole32.lib >> msvc.tmp
rem echo %vcdir%\lib\oleaut32.lib >> msvc.tmp
echo %vcdir%\lib\uuid.lib >> msvc.tmp
echo %vcdir%\lib\odbc32.lib >> msvc.tmp
echo %vcdir%\lib\odbccp32.lib >> msvc.tmp
echo %vcdir%\lib\iphlpapi.lib >> msvc.tmp
echo %vcdir%\lib\mpr.lib >> msvc.tmp
echo %vcdir%\lib\version.lib >> msvc.tmp
echo %vcdir%\lib\wsock32.lib >> msvc.tmp

IF EXIST %1.res echo %1.res >> msvc.tmp

%vcdir%\bin\link @msvc.tmp /nologo /subsystem:windows /force:multiple

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c
@del msvc.tmp

:LINKERROR
ECHO * There are errors
GOTO EXIT

:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT
[/code]
-Paul
paulrhanson
 
Posts: 13
Joined: Fri Sep 12, 2008 2:40 am

Postby Antonio Linares » Mon Sep 22, 2008 9:59 am

Paul,

Please use this buildhm.bat:
Code: Select all  Expand view  RUN
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 8.09 (MSVC++) Sep. 2008      Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2008       for Microsoft Windows 9X/NT/200X/ME/XP/Vista ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

if %HBDIR% == "" set HBDIR="c:\harbour"

ECHO Compiling...

set hdir=%HBDIR%
set hdirl=%hdir%\lib
set vcdir=c:\vc98
set include=%vcdir%\include;%hdir%\include;%include%
set lib=%vcdir%\lib;%hdir%\lib;%lib%

%hdir%\bin\vc\harbour %1 /n /i..\include;%hdir%\include /w /p %2 %3 > comp.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log

%vcdir%\bin\cl -TP -W3 -c /GA %1.c
:ENDCOMPILE

IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1

echo %1.obj  > msvc.tmp

echo c:\fwh\lib\FiveHM.lib c:\fwh\lib\FiveHCM.lib  >> msvc.tmp

echo %hdirl%\hbrtl.lib  >> msvc.tmp
echo %hdirl%\hbvm.lib  >> msvc.tmp
echo %hdirl%\gtgui.lib  >> msvc.tmp
echo %hdirl%\hblang.lib  >> msvc.tmp
echo %hdirl%\hbmacro.lib  >> msvc.tmp
echo %hdirl%\hbrdd.lib  >> msvc.tmp
echo %hdirl%\rddntx.lib  >> msvc.tmp
echo %hdirl%\rddcdx.lib  >> msvc.tmp
echo %hdirl%\rddfpt.lib  >> msvc.tmp
echo %hdirl%\hbsix.lib  >> msvc.tmp
echo %hdirl%\hbdebug.lib  >> msvc.tmp
echo %hdirl%\hbcommon.lib  >> msvc.tmp
echo %hdirl%\hbpp.lib  >> msvc.tmp
echo %hdirl%\hbcpage.lib  >> msvc.tmp
echo %hdirl%\hbw32.lib  >> msvc.tmp

rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp

echo %vcdir%\lib\kernel32.lib  >> msvc.tmp
echo %vcdir%\lib\user32.lib    >> msvc.tmp
echo %vcdir%\lib\gdi32.lib     >> msvc.tmp
echo %vcdir%\lib\winspool.lib  >> msvc.tmp
echo %vcdir%\lib\comctl32.lib  >> msvc.tmp
echo %vcdir%\lib\comdlg32.lib  >> msvc.tmp
echo %vcdir%\lib\advapi32.lib  >> msvc.tmp
echo %vcdir%\lib\shell32.lib   >> msvc.tmp
echo %vcdir%\lib\ole32.lib     >> msvc.tmp
echo %vcdir%\lib\oleaut32.lib  >> msvc.tmp
echo %vcdir%\lib\uuid.lib      >> msvc.tmp
echo %vcdir%\lib\odbc32.lib    >> msvc.tmp
echo %vcdir%\lib\odbccp32.lib  >> msvc.tmp
echo %vcdir%\lib\iphlpapi.lib  >> msvc.tmp
echo %vcdir%\lib\mpr.lib       >> msvc.tmp
echo %vcdir%\lib\version.lib   >> msvc.tmp
echo %vcdir%\lib\wsock32.lib   >> msvc.tmp
echo %vcdir%\lib\msimg32.lib   >> msvc.tmp

IF EXIST %1.res echo %1.res >> msvc.tmp

%vcdir%\bin\link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libcmt

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c
@del msvc.tmp

:COMPILEERROR
@type comp.log
ECHO * Compiling errors *
GOTO EXIT

:LINKERROR
ECHO * Linking errors *
GOTO EXIT

:SINTAX
ECHO    SYNTAX: Build [Program]     {-- No especifiques la extensi¢n PRG
ECHO                                {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby paulrhanson » Mon Sep 22, 2008 12:09 pm

Antonio,

I had to change the BuildHM.bat to get it to work. Just the initial command to set HBDIR variable.

Revised BuildHM.bat:
Code: Select all  Expand view  RUN
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 8.09 (MSVC++) Sep. 2008      Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2008       for Microsoft Windows 9X/NT/200X/ME/XP/Vista ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

set HBDIR="c:\harbourm"

ECHO Compiling...

set hdir=c:\harbourm
set hdirl=%hdir%\lib
set vcdir=c:\vc98
set include=%vcdir%\include;%hdir%\include;%include%
set lib=%vcdir%\lib;%hdir%\lib;%lib%

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /w /p %2 %3 > comp.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log

%vcdir%\bin\cl -TP -W3 -c /GA %1.c
:ENDCOMPILE

IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1

echo %1.obj  > msvc.tmp

echo c:\fwh\lib\FiveHM.lib c:\fwh\lib\FiveHCM.lib  >> msvc.tmp

echo %hdirl%\hbrtl.lib  >> msvc.tmp
echo %hdirl%\hbvm.lib  >> msvc.tmp
echo %hdirl%\gtgui.lib  >> msvc.tmp
echo %hdirl%\hblang.lib  >> msvc.tmp
echo %hdirl%\hbmacro.lib  >> msvc.tmp
echo %hdirl%\hbrdd.lib  >> msvc.tmp
echo %hdirl%\rddntx.lib  >> msvc.tmp
echo %hdirl%\rddcdx.lib  >> msvc.tmp
echo %hdirl%\rddfpt.lib  >> msvc.tmp
echo %hdirl%\hbsix.lib  >> msvc.tmp
echo %hdirl%\hbdebug.lib  >> msvc.tmp
echo %hdirl%\hbcommon.lib  >> msvc.tmp
echo %hdirl%\hbpp.lib  >> msvc.tmp
echo %hdirl%\hbcpage.lib  >> msvc.tmp
echo %hdirl%\hbw32.lib  >> msvc.tmp

rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp

echo %vcdir%\lib\kernel32.lib  >> msvc.tmp
echo %vcdir%\lib\user32.lib    >> msvc.tmp
echo %vcdir%\lib\gdi32.lib     >> msvc.tmp
echo %vcdir%\lib\winspool.lib  >> msvc.tmp
echo %vcdir%\lib\comctl32.lib  >> msvc.tmp
echo %vcdir%\lib\comdlg32.lib  >> msvc.tmp
echo %vcdir%\lib\advapi32.lib  >> msvc.tmp
echo %vcdir%\lib\shell32.lib   >> msvc.tmp
echo %vcdir%\lib\ole32.lib     >> msvc.tmp
echo %vcdir%\lib\oleaut32.lib  >> msvc.tmp
echo %vcdir%\lib\uuid.lib      >> msvc.tmp
echo %vcdir%\lib\odbc32.lib    >> msvc.tmp
echo %vcdir%\lib\odbccp32.lib  >> msvc.tmp
echo %vcdir%\lib\iphlpapi.lib  >> msvc.tmp
echo %vcdir%\lib\mpr.lib       >> msvc.tmp
echo %vcdir%\lib\version.lib   >> msvc.tmp
echo %vcdir%\lib\wsock32.lib   >> msvc.tmp
echo %vcdir%\lib\msimg32.lib   >> msvc.tmp

IF EXIST %1.res echo %1.res >> msvc.tmp

%vcdir%\bin\link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libcmt

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c
@del msvc.tmp

:COMPILEERROR
@type comp.log
ECHO * Compiling errors *
GOTO EXIT

:LINKERROR
ECHO * Linking errors *
GOTO EXIT

:SINTAX
ECHO    SYNTAX: Build [Program]     {-- No especifiques la extensi¢n PRG
ECHO                                {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT


Results of execution:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ FiveWin for Harbour 8.09 (MSVC++) Sep. 2008 Harbour development power ³Ü
³ (c) FiveTech, 1993-2008 for Microsoft Windows 9X/NT/200X/ME/XP/Vista ³Û
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
Compiling...
tutor01.c
gtgui.lib(gtgui.obj) : warning LNK4006: _HB_FUN_HB_GT_GUI_DEFAULT already defined in FiveHM.lib(ERRSYSW.obj); second definition ignored
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPPOPUP
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPINDEX
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPTOPIC
tutor01.exe : fatal error LNK1120: 3 unresolved externals
* Linking errors *

-Paul
paulrhanson
 
Posts: 13
Joined: Fri Sep 12, 2008 2:40 am

Postby Antonio Linares » Mon Sep 22, 2008 12:49 pm

Paul,

>
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPPOPUP
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPINDEX
FiveHM.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_CHMHELPTOPIC
>

We are going to review why those external symbols are missing.

In the meantime, please add these functions to your main PRG:

function ChmHelpPopup() ; return nil
function ChmHelpIndex() ; return nil
function ChmHelpTopic() ; return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 84 guests