There is also some important information here about the true culprit. It's a dll known as libwinpthread-1.dll.WOOOO! I DID IT! So it turns out, FB 1.09.0 actually DOES ship a version 100% compatible with Windows 2000, although you need to be careful about it.
This version would be the Win32 MinGORG build found here.
BE CAREFUL though, this build does contain a HUGE caveat:The linker doesn't have LFN support for some benign reason. Thankfully, Short File Names are 100% supported by the entirety of the suite, so that's not a problem at all, just feed it a SFN instead. You'll definitely want to automate your builds with a batch script(s) like I did. If you need to get the SFN to store in a set variable, a pretty easy command exists that you can run in the command prompt. Simply go to your folder in the command prompt, run the command for /d %A in ("%cd%") do @echo %~sA in cmd.exe, and it'll spit out your golden ticket.
Example:For some reason, this doesn't work in a batch file, so you can't make it 100% portable(I know, disappointing.)Code: Select all
C:\Program Files (x86)\Steam\steamapps\common\Steamworks Shared>for /d %A in ("%cd%") do @echo %~sA C:\PROGRA~2\Steam\STEAMA~1\common\STEAMW~1
Oh, also the batch files I posted had a few bugs in them that needed to get ironed out. I finally fixed that, so here's my batch files for any others who want to template off of my success.
compile.bat (This was the buggy part)Compile Traverse Debug.batCode: Select all
title Batch Compiler(Type %3) REM OLD set fb="C:\Documents and Settings\Administrator\Desktop\Development\FreeBasic\FreeBASIC-1.09.0-winlibs-gcc-9.3.0\fbc32.exe" set fb="C:\Documents and Settings\Administrator\Desktop\Development\FreeBasic\FBC\fbc.exe" if "%4"=="" (set name=%2) else (set name=%4) set name=%name:~1,-1% set folder=%2 set folder=%folder:~1,-1% set project=%1 set project=%project:~1,-1% set direct=C:\DOCUME~1\ADMINI~1\Desktop\DEVELO~1\FREEBA~1\Projects\%project% echo Compiling %1\%folder% with %name%... if %3==0 goto DBGC if %3==1 goto DBGG if %3==2 goto DBGL goto DBGC :DBGC echo Debug compilation for console application(T%3)... echo %fb% -x "%direct%\built\%name%.exe" -i \shared\ -map "%direct%\built\%folder%.txt" -v -export -s console -O 0 "%direct%\%folder%\build.bas" 1>Norm.%2.log %fb% -x "%direct%\built\%name%.exe" -i \shared\ -map "%direct%\built\%folder%.txt" -v -export -s console -O 0 "%direct%\%folder%\build.bas" 1>>Norm.%2.log 2>Err.%2.log if %errorlevel% NEQ 0 (type Err.%2.log) else (type Norm.%2.log) exit /b %errorlevel%
Code: Select all
@echo off set project="FDF" set file="traverse" set type=0 set comp=0 set zip="C:\Program Files\7-Zip\7z.exe" set storage="builds\%file:~1,-1%\%date:~10%\%date:~4,-4%\" set archive=%time:~0,2%%time:~3,2%%time:~6,5% mkdir %storage% del *.log rmdir built /s /q mkdir built echo %cd% echo %time%, %date% echo Compiling %file% for T%type%. call ..\compile.bat %project% %file% %type% echo Error:%errorlevel% echo Storing contents in %storage% with archive name %archive%... %zip% a -t7z %archive%.7z *.log %zip% a -t7z -r %archive%.7z %file%\*.* copy %archive%.7z %storage% del *.7z echo Complete! pause exit
Original Post:srvaldez wrote: ↑May 12, 2022 1:08 the culprit is libwinpthread-1.dll which calls that missing function in kernel32.dll, the binutils are ok
you should be able to run fbc from the Windows Binaries (mingw-w64 gcc 8.1.0) package
I tried to install Windows 2000 on a VM but had a lot problems with it, I then tried FreeBasic on Windows 98 and got basically the same error except that it informed me that it was libwinpthread-1.dll making the call to the missing function
So now that I'm home, I have access to this Windows 2000 computer I like to work on because it's free from distraction and it's aesthetically pleasing, not to mention shockingly responsive. I decided I'd set FreeBasic 1.09.0 up on my trusty 2002 work computer, so I went to work doing just that. When it came time to compile my program...
Yeah, to say I'm livid right now is an understatement. Or it would be, if it weren't for my choice of music. Anyways, perfectly timed troll song in my programming playlist making me crack up aside, I need to know where the executable came from. I discovered through the .chm that as.exe is the included assembler, but it didn't include information on where it was from(the Freebasic repository or some other compiler.) Knowing where it came from, I could figure out how to modify and compile it to work on Windows 2000, and hopefully fix the mess.as.exe - Entry Point Not Found
The procedure entry point AddVectoredExceptionHandler could not be located in the dynamic link library KERNEL32.dll.
Oh, here's the error log for your convenience. It was just a simple one liner hello world program.
FreeBASIC Compiler - Version 1.09.0 (2021-12-31), built for win32 (32bit)
Copyright (C) 2004-2021 The FreeBASIC development team.
standalone
target: win32, 486, 32bit
backend: gas
compiling: traverse\build.bas -o traverse\build.asm (main module)
assembling: C:\Documents and Settings\Administrator\Desktop\Development\FreeBasic\FreeBASIC-1.09.0-winlibs-gcc-9.3.0\bin\win32\as.exe --32 --strip-local-absolute "traverse\build.asm" -o "traverse\build.o"
assembling failed: 'C:\Documents and Settings\Administrator\Desktop\Development\FreeBasic\FreeBASIC-1.09.0-winlibs-gcc-9.3.0\bin\win32\as.exe' terminated with exit code 128