[xsd-users] Error: incomplete type when compiling cxx generated with --file-per-type

Yongchang Huang xjtu.yohuang at gmail.com
Tue Jul 25 23:11:35 EDT 2023


Hi Boris,

I can build xsd tool from the new released and tried to generate cxx files,
and it seems the generated .cxx can compile now.

Then I tried to build libxsd library in order to test the generated .cxx
files, but I have trouble building libxsd with the new version using build2
tool.

*bpkg build libxsd* command reported below error:

fetched libxsd/4.2.0-b.4
unpacked libxsd/4.2.0-b.4
configured libxsd/4.2.0-b.4
version libxsd-4.2.0-b.4/xsd/cxx/in{version} ->
libxsd-4.2.0-b.4/xsd/cxx/hxx{version}
in libxsd-4.2.0-b.4/doc/cxx/tree/reference/in{libxsd} ->
libxsd-4.2.0-b.4/doc/cxx/tree/reference/doxygen{libxsd}
in libxsd-4.2.0-b.4/doc/cxx/tree/reference/in{footer} ->
libxsd-4.2.0-b.4/doc/cxx/tree/reference/html{footer}
libxsd-4.2.0-b.4/doc/buildfile:51:7: error: target : not found in diag
builtin
  info: while updating
libxsd-4.2.0-b.4/doc/cxx/tree/reference/doxytag{libxsd}
  info: while updating libxsd-4.2.0-b.4/dir{doc/}

  info: while updating dir{libxsd-4.2.0-b.4/}
info: failed to update dir{libxsd-4.2.0-b.4/}

buildfile is hard to understand compared to Makefile, and I tried to
understand how buildfile works, and tried to remove doc target
in libxsd-4.2.0-b.4/buildfile as shown below:

./: {*/ -build/} doc{INSTALL NEWS README} legal{GPLv2 LICENSE FLOSSE}
manifest

to

./: {*/ -build/ -doc/} legal{GPLv2 LICENSE FLOSSE} manifest


but libxsd so file was not generated somehow. It seems the
libxsd-4.2.0-b.4/xsd/buildfile was not used.

thanks,
yohuang

Yongchang Huang <xjtu.yohuang at gmail.com> 于2023年7月24日周一 23:55写道:

> Hi Boris,
>
> Sorry that I did not check the debug.tar carefully before sending it out.
>
> The updated tar is attached.
>
> I will also try to use the pre-release version meanwhile.
>
> thanks,
> yohuang
>
> Boris Kolpackov <boris at codesynthesis.com> 于2023年7月24日周一 22:59写道:
>
>> Boris Kolpackov <boris at codesynthesis.com> writes:
>>
>> > Yongchang Huang <xjtu.yohuang at gmail.com> writes:
>> >
>> > > I used xsd-4.0.0 to generate cxx-tree files with --file-per-type
>> option,
>> > > and then tried to compile the .cxx files. g++ reported incomplete type
>> > > error as shown below.
>> >
>> > There were some issues in this area that we've fixed since the 4.0.0
>> > release. Would you be able to re-test this with the latest XSD pre-
>> > release and see if it makes any difference?
>>
>> I had a minute so I tried to check this myself using the reproducer
>> you have provided. But it seems to be missing some schemas:
>>
>> $ ./run.sh
>> busDefinition.xsd: error: 'generator.xsd': unable to open in read mode
>>
>


More information about the xsd-users mailing list