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> 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> 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 >> 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