I did not indicate I was initially building with MSVC. I am compiling on a Mac using cmake. I don’t know what it's defaults are.
-- DM > On Jul 8, 2025, at 11:42 PM, Greg Hellings <greg.helli...@gmail.com> wrote: > > Including it also fixes the build in my cross-build environment. Did you > indicate you were initially building with MSVC? That might explain the > difference. > > --Greg > > On Tue, Jul 8, 2025 at 9:54 PM DM Smith <dmsm...@crosswire.org > <mailto:dmsm...@crosswire.org>> wrote: >> While I don’t get the error in my local build environment, I get it on the >> crosswire server. If I include <cstring>, it compiles just fine. >> I’ll guess that my build environment includes it indirectly. >> >> DM >> >>> On Jul 8, 2025, at 10:40 PM, DM Smith <dmsm...@crosswire.org >>> <mailto:dmsm...@crosswire.org>> wrote: >>> >>> Greg, >>> Could you try 2 different things and let me know what the result is? >>> a) include <cstring> as I didn’t include it, but somehow “It works for me”. >>> b) remove the namespace. >>> >>> I’ll try the same on the crosswire server. >>> >>> Thanks, >>> DM >>> >>>> On Jul 8, 2025, at 9:35 PM, Greg Hellings <greg.helli...@gmail.com >>>> <mailto:greg.helli...@gmail.com>> wrote: >>>> >>>> DM, >>>> >>>> As mentioned elsewhere, here is the compile error from gcc when trying to >>>> cross-build osis2mod. It appears to be a case where the function exists >>>> but is not namespaced to `std::` in whichever version of C++ is the >>>> default version. From a quick glance around it appears there is a >>>> difference between <string.h>, which defines the function for C and >>>> <cstring> which defines the function for C++ within the `std` namespace. >>>> >>>> --Greg >>>> >>>> sword> osis2mod.cpp:371:19: error: 'strpbrk' is not a member of 'std'; did >>>> you mean 'strpbrk'? >>>> sword> 371 | if (!std::strpbrk(bufStart, "! :")) { >>>> sword> | ^~~~~~~ >>>> sword> In file included from >>>> /nix/store/np3pb3a6wd1bf55hp0rl3i64mfzrcilm-x86_64-w64-mingw32-gcc-14.2.1.20250322/x86_64-w64-mingw32/sys-include/io.h: >>>> 10, >>>> sword> from >>>> /nix/store/np3pb3a6wd1bf55hp0rl3i64mfzrcilm-x86_64-w64-mingw32-gcc-14.2.1.20250322/x86_64-w64-mingw32/sys-include/fcntl >>>> .h:8, >>>> sword> from osis2mod.cpp:29: >>>> sword> >>>> /nix/store/np3pb3a6wd1bf55hp0rl3i64mfzrcilm-x86_64-w64-mingw32-gcc-14.2.1.20250322/x86_64-w64-mingw32/sys-include/string.h:92:31: >>>> note: 'strp >>>> brk' declared here >>>> sword> 92 | _CONST_RETURN char *__cdecl strpbrk(const char >>>> *_Str,const char *_Control); >>>> sword> | ^~~~~~~ >>>> sword> osis2mod.cpp:392:40: error: 'strpbrk' is not a member of 'std'; did >>>> you mean 'strpbrk'? >>>> sword> 392 | char* lookahead = std::strpbrk(bufRead, ": >>>> -"); >>>> sword> | ^~~~~~~ >>>> sword> >>>> /nix/store/np3pb3a6wd1bf55hp0rl3i64mfzrcilm-x86_64-w64-mingw32-gcc-14.2.1.20250322/x86_64-w64-mingw32/sys-include/string.h:92:31: >>>> note: 'strp >>>> brk' declared here >>>> sword> 92 | _CONST_RETURN char *__cdecl strpbrk(const char >>>> *_Str,const char *_Control); >>>> sword> | ^~~~~~~ >>>> sword> osis2mod.cpp:411:34: error: 'strpbrk' is not a member of 'std'; did >>>> you mean 'strpbrk'? >>>> sword> 411 | lookahead = std::strpbrk(bufRead, "! -"); >>>> sword> | ^~~~~~~ >>>> sword> >>>> /nix/store/np3pb3a6wd1bf55hp0rl3i64mfzrcilm-x86_64-w64-mingw32-gcc-14.2.1.20250322/x86_64-w64-mingw32/sys-include/string.h:92:31: >>>> note: 'strp >>>> brk' declared here >>>> sword> 92 | _CONST_RETURN char *__cdecl strpbrk(const char >>>> *_Str,const char *_Control); >>>> sword> osis2mod.cpp:434:40: error: 'strpbrk' is not a member of 'std'; did >>>> you mean 'strpbrk'? >>>> sword> 434 | bufRead = std::strpbrk(tokenStart, >>>> " -"); >>>> sword> | ^~~~~~~ >>>> sword> >>>> /nix/store/np3pb3a6wd1bf55hp0rl3i64mfzrcilm-x86_64-w64-mingw32-gcc-14.2.1.20250322/x86_64-w64-mingw32/sys-include/string.h:92:31: >>>> note: 'strp >>>> brk' declared here >>>> sword> 92 | _CONST_RETURN char *__cdecl strpbrk(const char >>>> *_Str,const char *_Control); >>>> sword> | ^~~~~~~ >>>> >>>> >>>> On Mon, Jul 7, 2025 at 4:14 PM DM Smith <dmsm...@crosswire.org >>>> <mailto:dmsm...@crosswire.org>> wrote: >>>>> I have just committed revision 3907 for osis2mod, adding location >>>>> information to messages so that one can more readily tie reported events >>>>> to the OSIS input file. >>>>> >>>>> I have updated the osis2mod wiki entry to document it more fully: >>>>> https://wiki.crosswire.org/Osis2mod#Messages >>>>> >>>>> MODTOOLS-25 give location in input for messages. >>>>> >>>>> Created identifyMsg which creates a standardized message for reporting >>>>> and used it for all messages to standard out. >>>>> >>>>> The message is of the form: >>>>> type(kind)[linePos,charPos] osisID=osisID: message >>>>> >>>>> Where: >>>>> type The message type (e.g., "ERROR", "WARNING", "INFO"). >>>>> kind The message category or kind (e.g., "REF", "PARSE"). >>>>> linePos The position in the file of the last line that was read. >>>>> charPos The position in the line of the last character that was >>>>> read. >>>>> osisID (Optional) The current OSIS ID to include. May be nullptr >>>>> or empty. >>>>> message event description with details >>>>> >>>>> * If linePos is 0, the position ([linePos,charPos]) is omitted. >>>>> * If osisID is nullptr or empty, the osisID part is omitted. >>>>> * The returned string always ends with a colon and a trailing space (": >>>>> “). >>>>> >>>>> In Him, >>>>> DM >>>>> >>>>> _______________________________________________ >>>>> sword-devel mailing list: sword-devel@crosswire.org >>>>> <mailto:sword-devel@crosswire.org> >>>>> http://crosswire.org/mailman/listinfo/sword-devel >>>>> Instructions to unsubscribe/change your settings at above page >>>> _______________________________________________ >>>> sword-devel mailing list: sword-devel@crosswire.org >>>> <mailto:sword-devel@crosswire.org> >>>> http://crosswire.org/mailman/listinfo/sword-devel >>>> Instructions to unsubscribe/change your settings at above page >>> >> >> _______________________________________________ >> sword-devel mailing list: sword-devel@crosswire.org >> <mailto:sword-devel@crosswire.org> >> http://crosswire.org/mailman/listinfo/sword-devel >> Instructions to unsubscribe/change your settings at above page > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page