-
Content Count
3483 -
Joined
-
Last visited
-
Days Won
114
Everything posted by Lars Fosdal
-
Why... Who knows why.
-
Well, the old RichEdit demo was removed. Who knows.
-
Added a miniscule example using FMX for Linux at the end.
-
I see that the Rich Edit control has "moved" - not sure if the old wrapper supports 4.1? https://docs.microsoft.com/en-us/windows/win32/controls/about-rich-edit-controls VERSIONS OF RICH EDIT Rich Edit version DLL Window Class 1.0 Riched32.dll RICHEDIT_CLASS 2.0 Riched20.dll RICHEDIT_CLASS 3.0 Riched20.dll RICHEDIT_CLASS 4.1 Msftedit.dll MSFTEDIT_CLASS
-
Oh, BTW - VS Code and Powershell 7 works beautifully under Ubuntu 18.04 🙂
-
Originally, this was done to try to figure out why @Angus Robertson had issues with getting his Ubuntu environment working.
-
I am on PS C:\Windows\System32> Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer WindowsProductName WindowsVersion OsHardwareAbstractionLayer ------------------ -------------- -------------------------- Windows 10 Enterprise 1909 10.0.18362.752
-
The Ubuntu 18.04 that my Hyper-V Quick Create offers me, has the visual UI - so not a pure server, perhaps?
-
@Angus Robertson I tried Hyper-V Quick Create, and it worked for me, but you need to add the build essentials manually. Wrote a small post about it too. https://larsfosdal.blog/2020/08/26/get-started-writing-linux-apps-with-delphi-10-3-3-rio/ What fails during your installation?
-
It is unfortunate that the toolchain doesn't keep up with the platforms it is supposed to support.
-
sudo apt install gcc cured the linker problems, but appeared in the PAserver and followed in the IDE. /facepalm
-
What went wrong?
-
This compiled, but it didnt link. 😕 program LinuxTest; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; begin try { TODO -oUser -cConsole Main : Insert code here } Writeln('Hello World'); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. Checking project dependencies... [EurekaLog] LinuxTest.dproj(1): Unsupported project (LinuxTest.dproj; Linux64): platform "Linux64" is not supported Compiling LinuxTest.dproj (Debug, Linux64) brcc32 command line for "LinuxTest.vrc" c:\program files (x86)\embarcadero\studio\20.0\bin\cgrc.exe -c65001 LinuxTest.vrc -foLinuxTest.res dcclinux64 command line for "LinuxTest.dpr" c:\program files (x86)\embarcadero\studio\20.0\bin\dcclinux64.exe -$O- --no-config -M -Q -AGenerics.Collections=System.Generics.Collections; Generics.Defaults=System.Generics.Defaults -DDEBUG;foslar -E.\Linux64\Debug -I"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug"; "c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\foslar\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64"; C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -LEC:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -LNC:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64 -NU.\Linux64\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap;;(Default) -O"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\foslar\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64"; C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -R"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release"; C:\Users\foslar\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports"; C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -U"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug";"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release"; C:\Users\foslar\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports"; C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 --syslibroot:C:\Users\foslar\Documents\Embarcadero\Studio\SDKs\ubuntu20.04.sdk --libpath:C:\Users\foslar\Documents\Embarcadero\Studio\SDKs\ubuntu20.04.sdk\usr\lib\gcc\x86_64-linux-gnu\9; C:\Users\foslar\Documents\Embarcadero\Studio\SDKs\ubuntu20.04.sdk\usr\lib\x86_64-linux-gnu; C:\Users\foslar\Documents\Embarcadero\Studio\SDKs\ubuntu20.04.sdk\lib\x86_64-linux-gnu -V -VN -NHC:\Users\Public\Documents\Embarcadero\Studio\20.0\hpp\Linux64 -NO.\Linux64\Debug LinuxTest.dpr [DCC Error] E2597 C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -lgcc_s C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -lc C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -ldl C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -lpthread C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -lm c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::__malloc(NativeUInt): error: undefined reference to 'malloc' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::__free(void*): error: undefined reference to 'free' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::pthread_once(int&, void (*)()): error: undefined reference to 'pthread_once' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::pthread_key_create(unsigned int&, void (*)(void*)): error: undefined reference to 'pthread_key_create' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::dladdr(NativeUInt, dl_info&): error: undefined reference to 'dladdr' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::dlopen(char*, int): error: undefined reference to 'dlopen' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::dlclose(NativeUInt): error: undefined reference to 'dlclose' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::dlsym(NativeUInt, char*): error: undefined reference to 'dlsym' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::TlsGetValue(unsigned int): error: undefined reference to 'pthread_getspecific' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\SysInit.o:SysInit:function Sysinit::TlsSetValue(unsigned int, void*): error: undefined reference to 'pthread_setspecific' SysInit.pas:1183: error: undefined reference to '_Unwind_Resume' System.pas:17574: error: undefined reference to '_Unwind_Resume' System.pas:17486: error: undefined reference to '_Unwind_Resume' System.pas:668: error: undefined reference to 'memcpy' System.pas:17471: error: undefined reference to '_Unwind_Resume' System.pas:672: error: undefined reference to 'memcpy' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::getenv(char*): error: undefined reference to 'getenv' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__malloc(NativeUInt): error: undefined reference to 'malloc' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::calloc(NativeUInt, NativeUInt): error: undefined reference to 'calloc' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::realloc(void*, NativeUInt): error: undefined reference to 'realloc' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__free(void*): error: undefined reference to 'free' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__exit(int): error: undefined reference to 'exit' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::memmove(void*, void const*, NativeUInt): error: undefined reference to 'memmove' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::memset(void*, int, NativeUInt): error: undefined reference to 'memset' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::strlen(char*): error: undefined reference to 'strlen' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__raise(int): error: undefined reference to 'raise' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::pthread_self(): error: undefined reference to 'pthread_self' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::sched_yield(): error: undefined reference to 'sched_yield' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::dladdr(NativeUInt, dl_info&): error: undefined reference to 'dladdr' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::dlopen(char*, int): error: undefined reference to 'dlopen' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::dlclose(NativeUInt): error: undefined reference to 'dlclose' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::dlsym(NativeUInt, char*): error: undefined reference to 'dlsym' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::dlerror(): error: undefined reference to 'dlerror' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::open(char*, int): error: undefined reference to 'open' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__chdir(char*): error: undefined reference to 'chdir' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__close(int): error: undefined reference to 'close' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::fchdir(int): error: undefined reference to 'fchdir' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::ftruncate(int, long): error: undefined reference to 'ftruncate' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::getcwd(char*, NativeUInt): error: undefined reference to 'getcwd' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::lseek(int, long, int): error: undefined reference to 'lseek' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__read(int, void*, NativeUInt): error: undefined reference to 'read' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::readlink(char*, char*, NativeUInt): error: undefined reference to 'readlink' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::sysconf(int): error: undefined reference to 'sysconf' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::usleep(unsigned int): error: undefined reference to 'usleep' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__write(int, void*, NativeUInt): error: undefined reference to 'write' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::iconv(void*, char**, NativeUInt*, char**, NativeUInt*): error: undefined reference to 'iconv' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::iconv_open(char*, char*): error: undefined reference to 'iconv_open' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::iconv_close(void*): error: undefined reference to 'iconv_close' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::stat(char*, _stat&): error: undefined reference to 'stat' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::mmap(void*, NativeUInt, int, int, int, long): error: undefined reference to 'mmap' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::munmap(void*, NativeUInt): error: undefined reference to 'munmap' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::__error(): error: undefined reference to '__errno_location' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::wcscoll_l(int const*, int const*, void*): error: undefined reference to 'wcscoll_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::towupper_l(unsigned int, void*): error: undefined reference to 'towupper_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::setlocale(int, char const*): error: undefined reference to 'setlocale' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::newlocale(int, char const*, void*): error: undefined reference to 'newlocale' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::times(tms&): error: undefined reference to 'times' ICU.inc:243: error: undefined reference to 'memcpy' System.pas:28043: error: undefined reference to 'memcpy' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::fegetexceptflag(unsigned short*, unsigned int): error: undefined reference to 'fegetexceptflag' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::fesetexceptflag(unsigned short*, unsigned int): error: undefined reference to 'fesetexceptflag' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::fegetround(): error: undefined reference to 'fegetround' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::fesetround(unsigned int): error: undefined reference to 'fesetround' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::fedisableexcept(unsigned int): error: undefined reference to 'fedisableexcept' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::libm_cosl(long double): error: undefined reference to 'cosl' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::libm_sinl(long double): error: undefined reference to 'sinl' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::libm_atanl(long double): error: undefined reference to 'atanl' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::libm_sqrtl(long double): error: undefined reference to 'sqrtl' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::llrintl(long double): error: undefined reference to 'llrintl' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::_Unwind_RaiseException(_Unwind_Exception&): error: undefined reference to '_Unwind_RaiseException' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::_Unwind_GetRegionStart(_Unwind_Context*): error: undefined reference to '_Unwind_GetRegionStart' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::_Unwind_GetLanguageSpecificData(_Unwind_Context*): error: undefined reference to '_Unwind_GetLanguageSpecificData' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::_Unwind_SetGR(_Unwind_Context*, int, NativeUInt): error: undefined reference to '_Unwind_SetGR' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::_Unwind_GetIP(_Unwind_Context*): error: undefined reference to '_Unwind_GetIP' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.o:System:function System::_Unwind_SetIP(_Unwind_Context*, NativeUInt): error: undefined reference to '_Unwind_SetIP' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dlfcn.o:Posix.Dlfcn:function Posix::Dlfcn::dladdr(NativeUInt, dl_info&): error: undefined reference to 'dladdr' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dlfcn.o:Posix.Dlfcn:function Posix::Dlfcn::dlopen(char*, int): error: undefined reference to 'dlopen' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dlfcn.o:Posix.Dlfcn:function Posix::Dlfcn::dlclose(NativeUInt): error: undefined reference to 'dlclose' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dlfcn.o:Posix.Dlfcn:function Posix::Dlfcn::dlsym(NativeUInt, char*): error: undefined reference to 'dlsym' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Fcntl.o:Posix.Fcntl:function Posix::Fcntl::__open(char*, int): error: undefined reference to 'open' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Fcntl.o:Posix.Fcntl:function Posix::Fcntl::fcntl(int, int): error: undefined reference to 'fcntl' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.SysStat.o:Posix.SysStat:function Posix::Sysstat::fstat(int, _stat&): error: undefined reference to 'fstat' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.SysStat.o:Posix.SysStat:function Posix::Sysstat::lstat(char*, _stat&): error: undefined reference to 'lstat' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.SysStat.o:Posix.SysStat:function Posix::Sysstat::stat(char*, _stat&): error: undefined reference to 'stat' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Signal.o:Posix.Signal:function Posix::Signal::sigaction(int, sigaction_t*, sigaction_t*): error: undefined reference to 'sigaction' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Signal.o:Posix.Signal:function Posix::Signal::sigaddset(sigset_t&, int): error: undefined reference to 'sigaddset' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Signal.o:Posix.Signal:function Posix::Signal::kill(int, int): error: undefined reference to 'kill' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Time.o:Posix.Time:function Posix::Time::clock_gettime(int, timespec*): error: undefined reference to 'clock_gettime' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Time.o:Posix.Time:function Posix::Time::localtime_r(long&, tm&): error: undefined reference to 'localtime_r' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.SysTime.o:Posix.SysTime:function Posix::Systime::gettimeofday(timeval&, void*): error: undefined reference to 'gettimeofday' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Locale.o:Posix.Locale:function Posix::Locale::localeconv(): error: undefined reference to 'localeconv' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Locale.o:Posix.Locale:function Posix::Locale::newlocale(int, char const*, void*): error: undefined reference to 'newlocale' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Locale.o:Posix.Locale:function Posix::Locale::freelocale(void*): error: undefined reference to 'freelocale' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Locale.o:Posix.Locale:function Posix::Locale::duplocale(void*): error: undefined reference to 'duplocale' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Locale.o:Posix.Locale:function Posix::Locale::uselocale(void*): error: undefined reference to 'uselocale' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Iconv.o:Posix.Iconv:function Posix::Iconv::iconv_open(char*, char*): error: undefined reference to 'iconv_open' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Iconv.o:Posix.Iconv:function Posix::Iconv::iconv_close(void*): error: undefined reference to 'iconv_close' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dirent.o:Posix.Dirent:function Posix::Dirent::closedir(__dirstream*): error: undefined reference to 'closedir' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dirent.o:Posix.Dirent:function Posix::Dirent::opendir(char*): error: undefined reference to 'opendir' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Dirent.o:Posix.Dirent:function Posix::Dirent::readdir_r(__dirstream*, dirent*, dirent*&): error: undefined reference to 'readdir_r' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Errno.o:Posix.Errno:function Posix::Errno::__error(): error: undefined reference to '__errno_location' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Fnmatch.o:Posix.Fnmatch:function Posix::Fnmatch::fnmatch(char*, char*, int): error: undefined reference to 'fnmatch' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Langinfo.o:Posix.Langinfo:function Posix::Langinfo::nl_langinfo(int): error: undefined reference to 'nl_langinfo' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Langinfo.o:Posix.Langinfo:function Posix::Langinfo::nl_langinfo_l(int, void*): error: undefined reference to 'nl_langinfo_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Pthread.o:Posix.Pthread:function Posix::Pthread::GetCurrentThreadID(): error: undefined reference to 'pthread_self' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Stdlib.o:Posix.Stdlib:function Posix::Stdlib::getenv(char*): error: undefined reference to 'getenv' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.String_.o:Posix.String_:function Posix::String_::memcmp(void const*, void const*, NativeUInt): error: undefined reference to 'memcmp' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.String_.o:Posix.String_:function Posix::String_::strcmp(char*, char*): error: undefined reference to 'strcmp' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.String_.o:Posix.String_:function Posix::String_::strerror_r(int, char*, NativeUInt): error: undefined reference to 'strerror_r' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Unistd.o:Posix.Unistd:function Posix::Unistd::euidaccess(char*, int): error: undefined reference to 'access' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Unistd.o:Posix.Unistd:function Posix::Unistd::__close(int): error: undefined reference to 'close' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Unistd.o:Posix.Unistd:function Posix::Unistd::getpid(): error: undefined reference to 'getpid' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Unistd.o:Posix.Unistd:function Posix::Unistd::__read(int, void*, NativeUInt): error: undefined reference to 'read' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Unistd.o:Posix.Unistd:function Posix::Unistd::__write(int, void*, NativeUInt): error: undefined reference to 'write' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_destroy(sem_t&): error: undefined reference to 'sem_destroy' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_getvalue(sem_t&, int&): error: undefined reference to 'sem_getvalue' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_init(sem_t&, int, unsigned int): error: undefined reference to 'sem_init' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_post(sem_t&): error: undefined reference to 'sem_post' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_trywait(sem_t&): error: undefined reference to 'sem_trywait' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_wait(sem_t&): error: undefined reference to 'sem_wait' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Semaphore.o:Posix.Semaphore:function Posix::Semaphore::sem_timedwait(sem_t&, timespec&): error: undefined reference to 'sem_timedwait' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.SysUtsname.o:Posix.SysUtsname:function Posix::Sysutsname::uname(utsname&): error: undefined reference to 'uname' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Wchar.o:Posix.Wchar:function Posix::Wchar::wcscoll_l(int const*, int const*, void*): error: undefined reference to 'wcscoll_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Wchar.o:Posix.Wchar:function Posix::Wchar::wcscasecmp_l(int const*, int const*, void*): error: undefined reference to 'wcscasecmp_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Wctype.o:Posix.Wctype:function Posix::Wctype::towupper(unsigned int): error: undefined reference to 'towupper' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Wctype.o:Posix.Wctype:function Posix::Wctype::towlower_l(unsigned int, void*): error: undefined reference to 'towlower_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\Posix.Wctype.o:Posix.Wctype:function Posix::Wctype::towupper_l(unsigned int, void*): error: undefined reference to 'towupper_l' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.Internal.ExcUtils.o:System.Internal.ExcUtils:function System::Internal::Excutils::TlsGetValue(int): error: undefined reference to 'pthread_getspecific' System.SysUtils.pas:978: error: undefined reference to 'memset' System.SysUtils.pas:978: error: undefined reference to 'memset' System.SysUtils.pas:29191: error: undefined reference to 'memset' c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug\System.SysUtils.o:System.SysUtils:function System::Sysutils::gnu_get_libc_version(): error: undefined reference to 'gnu_get_libc_version' [DCC Fatal Error] F2588 Linker error code: 1 ($00000001) Failed Elapsed time: 00:00:02.9
-
I just installed Ubuntu 20.04 LTS on Hyper-V on my Windows 10 machine, Advanced Model, 2 cores, 8Gb, no other configuration changes and opening a terminal, and running "ip addr show" - my second adapter shows as 172.17.202.69 Downloaded PAServer, and ran it with the default port Tested connection from 10.3.3 - success.
-
FWIW, Hyper-V is really easy to install and configure.
-
Are there any BRCC32 specialties that doesn't work with the MS RC compiler?
-
Enums and generics
Lars Fosdal replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Maintain, how? Once the text is written, it rarely needs to be changed after any initial correction. Sentences for UI texts are definitively not ideal - but this worked out so well that we even use this method for hip computer voice responses in multiple languages for our JsonRPC services. We still haven't introduced a fourth language, but if we do - it will be impossible to miss a translation. -
Enums and generics
Lars Fosdal replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Not really. Usually I just create a keyboard macro on the fly to make the template, and then I fill in the texts afterwards. -
Enums and generics
Lars Fosdal replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Normally we use Sisulizer, but it is hard to keep track of context in Sisulizer, so for enums we have this "dirty" workaround which also prevents missing translations. -
Enums and generics
Lars Fosdal replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
It probably is no consolation that I also have hundreds of these helpers... TAllowState = (asAllow,asWarn,asDeny); TAllowStateHelper = record helper for TAllowState const Translate: array[TAllowState] of xlt = ( { asAllow } (no:'Tillatt'; se:'Tillåten'; en:'Allow'), { asWarn } (no:'Vis advarsel'; se:'Visa varning'; en:'Show warning'), { asDeny } (no:'Sperret'; se:'Sperrad'; en:'Denied') ); public function ToString(const Language: TLanguage = langDefault): String; inline; class function FromString(str: string; const Language: TLanguage = langDefault): TAllowState; static; end; { TAllowStateHelper } class function TAllowStateHelper.FromString(str: string; const Language: TLanguage): TAllowState; begin Result:=asWarn; //Default var Lang := Language.GetLanguage; for var state :=Low(TAllowState) to High(TAllowState) do if CompareText(str, state.ToString(Lang)) = 0 then Exit(state); end; function TAllowStateHelper.ToString(const Language: TLanguage): String; begin Result := Translate[Self].Text(Language); end; -
Enums and generics
Lars Fosdal replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
It is tricky to do a generic helper class for Enumerations, since there is no constraint that will allow you to use enum operators. There are workarounds, but not pretty ones. As for having to use a constant table - why not use the actual type name? There is System.TypInfo function to convert an enum to a string which reflects the actual type name. http://docwiki.embarcadero.com/Libraries/Sydney/en/System.TypInfo.GetEnumName Result := GetEnumName(TypeInfo(TProjectType), Ord(Self)); There also is the reverse http://docwiki.embarcadero.com/Libraries/Sydney/en/System.TypInfo.GetEnumValue -
@RDP1974 - I moved the post and delete the three "reposts". If you happened to post in the wrong category, ask a moderator to move it. Please don't do reposts/cross-posts.
-
Delphi implementation of Aberth–Ehrlich method and precision problem
Lars Fosdal replied to at3s's topic in Algorithms, Data Structures and Class Design
Wrong floating point precision when choosing overloads https://quality.embarcadero.com/browse/RSP-27488 Reduction of precision from integer to single rather than double https://quality.embarcadero.com/browse/RSP-27499 Another case of silent reduction of precision https://quality.embarcadero.com/browse/RSP-27500 -
Delphi implementation of Aberth–Ehrlich method and precision problem
Lars Fosdal replied to at3s's topic in Algorithms, Data Structures and Class Design
Can it be that some of the known FP expression precision issues come into play here? -
Invalid Compiler Directive: 'MESSAGES'
Lars Fosdal replied to Incus J's topic in ICS - Internet Component Suite
It was based on this: https://stackoverflow.com/questions/12788870/conditionally-compile-units-for-fmx-or-vcl I never mix VCL and FMX form code in projects myself, but I guess the problem here is that the "defined" depends on FMX.Types already being in scope. My approach would probably be to use an interface or a proxy class to hide the actual VCL/FMX accesses.