|
 |
Am 26.08.2017 um 23:31 schrieb LanuHum:
>
> 1. Error
> syspovconfig.h line number 328
>
> #elif defined(__CYGWIN__)
> // Cygwin detected.
> // Not officially supported yet; comment-out the following line to try with
> default POSIX settings.
> #error "Cygwin detected, but not explicitly supported yet; proceed at your
> own risk."
> #include "syspovconfig_posix.h"
>
> I wrote so:
> #elif defined(__CYGWIN__)
> // GNU/Linux detected.
> #include "syspovconfig_gnu.h"
Now, why would you try GNU/Linux settings, rather than simply comment
out the `#error` statement and "try with default POSIX settings", as
suggested in the comment?
Cygwin is not a GNU project, nor does it (to my knowledge) attempt to
mimick GNU/Linux's system API. Its aim is to provide a POSIX-compliant
environment on Windows, and to that end borrows a few command-line tools
from GNU, that's all. (GNU/Linux itself is actually _not_ fully
POSIX-compliant.)
Also, `syspovconfig_posix.h` is our fallback solution: Virtually all
major Unix-ish operating systems are reasonably POSIX-compliant, so
ideally that file should work reasonably well for all of them. The other
operating system specific `syspovconfig_FOO.h` header files are there to
either take advantage of certain extensions, or work around certain
POSIX-incompatibilities, and are therefore intended /only/ specifically
for those operating systems.
> But:
...
> base/image/image.cpp: In constructor
>
'pov_base::FileBackedPixelContainer::FileBackedPixelContainer(pov_base::FileBackedPixelContainer::size_type,
> pov_base::FileBackedPixelContainer::size_type,
> pov_base::FileBackedPixelContainer::size_type)':
> base/image/image.cpp:3079:46: error: 'lseek64' was not declared in this scope
> if (lseek64(m_File, pos, SEEK_SET) != pos)
> ^
Yes, that's exactly what you get if you try to use GNU/Linux-specific
extensions on a different operating system: `lseek64` is a function
we're using to work with files potentially larger than 4GB. On GNU/Linux
it happens to be already defined by the operating system, while on other
Unixoid systems it must be emulated somehow, or the user must be
informed that certain features won't be available.
Post a reply to this message
|
 |