richard-service
Posts: 806 Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:
Post
by richard-service » Sun Nov 30, 2014 5:39 pm
Dear Antonio,
fix
set hdirl=%hdir%\lib\vc64
to
set hdirl=%hdir%\lib
because your Harbour's LIB not vc64 folder
@ECHO OFF CLS ECHO 矬闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡醴 ECHO ?FWH 64 for Harbour 14.09 (MSVC++) Sep.2014 Harbour development power 喝 ECHO ?(c) FiveTech, 1993-2014 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8 喊 ECHO 斂闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡闡囁? ECHO 葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔葔? if A%1 == A GOTO :SINTAX if NOT EXIST %1.prg GOTO :NOEXIST @set oldpath=%path% @set oldinclude=%include% @set oldlib=%lib% @set oldlibpath=%libpath% if exist "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 if "%FWDIR%" == "" set FWDIR=.\.. if "%HBDIR%" == "" set HBDIR=c:\harbour ECHO Compiling... set hdir=%HBDIR% set hdirl=%hdir%\lib\vc64 %hdir%\bin\harbour %1 /n /i%fwdir%\include;%hdir%\include /w /p /d__64__ %2 %3 > comp.log 2> warnings.log IF ERRORLEVEL 1 GOTO COMPILEERROR @type comp.log @type warnings.log cl -TC -W3 -O2 -c -I%hdir%\include %1.c :ENDCOMPILE IF EXIST %1.rc rc -r -D__64__ %1 echo %1.obj > msvc.tmp echo %fwdir%\lib\FiveH64.lib %fwdir%\lib\FiveHC64.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%\hbwin.lib >> msvc.tmp echo %hdirl%\hbct.lib >> msvc.tmp echo %hdirl%\hbziparc.lib >> msvc.tmp echo %hdirl%\hbmzip.lib >> msvc.tmp echo %hdirl%\hbzlib.lib >> msvc.tmp echo %hdirl%\hbpcre.lib >> msvc.tmp echo %hdirl%\minizip.lib >> msvc.tmp echo %hdirl%\xhb.lib >> msvc.tmp echo %hdirl%\hbcplr.lib >> msvc.tmp echo %hdirl%\png.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 kernel32.lib >> msvc.tmp echo user32.lib >> msvc.tmp echo gdi32.lib >> msvc.tmp echo winspool.lib >> msvc.tmp echo comctl32.lib >> msvc.tmp echo comdlg32.lib >> msvc.tmp echo advapi32.lib >> msvc.tmp echo shell32.lib >> msvc.tmp echo ole32.lib >> msvc.tmp echo oleaut32.lib >> msvc.tmp echo uuid.lib >> msvc.tmp echo odbc32.lib >> msvc.tmp echo odbccp32.lib >> msvc.tmp echo iphlpapi.lib >> msvc.tmp echo mpr.lib >> msvc.tmp echo version.lib >> msvc.tmp echo wsock32.lib >> msvc.tmp echo msimg32.lib >> msvc.tmp echo oledlg.lib >> msvc.tmp echo psapi.lib >> msvc.tmp echo gdiplus.lib >> msvc.tmp echo winmm.lib >> msvc.tmp IF EXIST %1.res echo %1.res >> msvc.tmp link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc IF ERRORLEVEL 1 GOTO LINKERROR ECHO * Application successfully built * @set path=%oldpath% @set include=%oldinclude% @set lib=%oldlib% @set libpath=%oldlibpath% @set oldpath="" @set oldinclude="" @set oldlib= @set oldlibpath= %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▋ PRG ECHO {-- Don't specify .PRG extension GOTO EXIT :NOEXIST ECHO The specified PRG %1 does not exist :EXIT
Best Regards,
Richard
Harbour 3.2.0dev (r2402101027) => Borland C++ v7.7 32bit
MySQL v8.0 /ADS v10
Harbour 3.2.0dev (r2011030937) => Borland C++ v7.4 64bit
richard-service
Posts: 806 Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:
Post
by richard-service » Mon Dec 01, 2014 8:56 am
Antonio, OK. Finished.
Best Regards,
Richard
Harbour 3.2.0dev (r2402101027) => Borland C++ v7.7 32bit
MySQL v8.0 /ADS v10
Harbour 3.2.0dev (r2011030937) => Borland C++ v7.4 64bit
richard-service
Posts: 806 Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:
Post
by richard-service » Fri Dec 12, 2014 12:14 pm
Antonio, samples\Build64.bat only to build one PRG file. I want to build more PRG files. Same as BCC .mak file, Where can download it for VS2013? Thanks a lot.
Best Regards,
Richard
Harbour 3.2.0dev (r2402101027) => Borland C++ v7.7 32bit
MySQL v8.0 /ADS v10
Harbour 3.2.0dev (r2011030937) => Borland C++ v7.4 64bit
richard-service
Posts: 806 Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan
Contact:
Post
by richard-service » Sun Dec 14, 2014 8:10 am
Antonio Linares wrote: Richard,
Please review the file vs2013_64bits_make.zip in FWH\makes folder
Antonio,
Thanks a lot.
Best Regards,
Richard
Harbour 3.2.0dev (r2402101027) => Borland C++ v7.7 32bit
MySQL v8.0 /ADS v10
Harbour 3.2.0dev (r2011030937) => Borland C++ v7.4 64bit
bart
Posts: 10 Joined: Tue Feb 10, 2015 9:11 pm
Post
by bart » Wed Feb 11, 2015 8:12 am
Antonio, Where can I download the file vs2013-64bits.zip as it is not in the FWH\makes map? Thank you. Bart
Antonio Linares
Site Admin
Posts: 42418 Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 14 times
Been thanked: 48 times
Contact:
Post
by Antonio Linares » Wed Feb 11, 2015 9:24 am
Bart,
go.bat
Code: Select all | Expand
@set oldpath=%path% @set oldinclude=%include% @set oldlib=%lib% @set oldlibpath=%libpath%if exist "%ProgramFiles%\M icrosoft Visual Studio 12.0\V C\v cvarsall.bat" call "%ProgramFiles%\M icrosoft Visual Studio 12.0\V C\v cvarsall.bat" x86_amd64if exist "%ProgramFiles(x86)%\M icrosoft Visual Studio 12.0\V C\v cvarsall.bat" call "%ProgramFiles(x86)%\M icrosoft Visual Studio 12.0\V C\v cvarsall.bat" x86_amd64 c:\"Program Files (x86)\M icrosoft Visual Studio 12.0" \VC\bin\nmake -ftest.mak @set path=%oldpath% @set include=%oldinclude% @set lib=%oldlib% @set libpath=%oldlibpath% @set oldpath="" @set oldinclude="" @set oldlib= @set oldlibpath=if errorlevel==0 one.exe
test.mak
Code: Select all | Expand
#Microsoft VS2013 make sample, ( c) FiveTech Software 2014 HBDIR=c:\harbour FWDIR=c:\fwteam VCDIR="c:\P rogram Files (x86)\M icrosoft Visual Studio 12.0\V C" SDKDIR="c:\P rogram Files (x86)\W indows Kits\8 .1" .SUFFIXES: .prg .c .obj .rc .res one.exe : one .obj two.obj three.obj one.res echo one.obj two.obj three.obj > msvc.tmp echo $( FWDIR) \lib\FiveH64.lib $( FWDIR) \lib\FiveHC64.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbrtl.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbvm.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\gtgui.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hblang.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbmacro.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbrdd.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\rddntx.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\rddcdx.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\rddfpt.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbsix.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbdebug.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbcommon.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbpp.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbwin.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbcplr.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\xhb.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbpcre.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbct.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbcpage.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\hbzlib.lib >> msvc.tmp echo $( HBDIR) \lib\vc64\png.lib >> msvc.tmp echo kernel32.lib >> msvc.tmp echo user32.lib >> msvc.tmp echo gdi32.lib >> msvc.tmp echo winspool.lib >> msvc.tmp echo comctl32.lib >> msvc.tmp echo comdlg32.lib >> msvc.tmp echo advapi32.lib >> msvc.tmp echo shell32.lib >> msvc.tmp echo ole32.lib >> msvc.tmp echo oleaut32.lib >> msvc.tmp echo uuid.lib >> msvc.tmp echo odbc32.lib >> msvc.tmp echo odbccp32.lib >> msvc.tmp echo iphlpapi.lib >> msvc.tmp echo mpr.lib >> msvc.tmp echo version.lib >> msvc.tmp echo wsock32.lib >> msvc.tmp echo msimg32.lib >> msvc.tmp echo oledlg.lib >> msvc.tmp echo psapi.lib >> msvc.tmp echo gdiplus.lib >> msvc.tmp echo winmm.lib >> msvc.tmp IF EXIST one.res echo one.res >> msvc.tmp link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc > link.log @type link.log @del one.c @del two.c @del three.c @del msvc.tmp one.obj : one .c two.obj : two .c three.obj : three .c one.c : one .prg two.c : two .prg three.c : three .prg one.res : one .rc rc.exe -r -d__FLAT__ one.rc .prg.c: $( HBDIR) \bin\harbour $< /n /i$( FWDIR) \include;$( HBDIR) \include .c.obj: cl .exe -c -TC -W3 -I$( HBDIR) \include -I$( SDKDIR) \include -I$( VCDIR) \include $<
bart
Posts: 10 Joined: Tue Feb 10, 2015 9:11 pm
Post
by bart » Wed Feb 11, 2015 6:05 pm
Antonio The go.bat and test.mak files create the one.exe as expected. When compiling and linking my own application however, I get a fatal error U1073: don't know how to make the "app".rc The exe file is not created. Any idea what's wrong? Thank you Best regards Bart
Antonio Linares
Site Admin
Posts: 42418 Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 14 times
Been thanked: 48 times
Contact:
Post
by Antonio Linares » Thu Feb 12, 2015 4:58 am
Bart, In your makefile check that you have these lines: .SUFFIXES: .prg .c .obj .rc .res ... IF EXIST app.res echo app.res >> msvc.tmp ... app.res : app.rc rc.exe -r -d__FLAT__ app.rc Please check that if you call rc.exe, it is available
bart
Posts: 10 Joined: Tue Feb 10, 2015 9:11 pm
Post
by bart » Thu Feb 12, 2015 7:55 am
Antonio Problem solved. The app.rc file was missing. Thanks Bart