coin3d / quarter

Coin GUI binding for Qt
BSD 3-Clause "New" or "Revised" License
36 stars 26 forks source link

"ScXML::readBuffer": Cannot convert parameter 1 from "SbByteBuffer" to "const char *" #7

Closed VolkerEnderlein closed 5 years ago

VolkerEnderlein commented 5 years ago

Original report by brune aris (Bitbucket: BurneAris, ).


Error 33 error C2664: "ScXML::readBuffer": Cannot convert parameter 1 from "SbByteBuffer" to "const char *" g:\Coin3D\Coin3D-quarter\src\Quarter\QuarterWidget.cpp 1037 quarter1

My coin3D is 3.1.3

VolkerEnderlein commented 5 years ago

Original comment by Bastiaan Veelo (Bitbucket: veelo, GitHub: veelo).


Quarter only works with Coin 4. Please check out a copy from the default branch.

VolkerEnderlein commented 5 years ago

Original comment by Volker Enderlein (Bitbucket: VolkerEnderlein, GitHub: VolkerEnderlein).


@BurneAris This seems to be one of the last changes the developers at Kongsberg made and not properly tested. According to the SbByteBuffer sources I think adding a .constData() to the call should fix the compilation error.

BTW, on what platform are you trying to compile? I am asking that, because it didn't occurred to me neither on Ubuntu nor on Windows.

@veelo No, Quarter 1.0.0 should also be usable with Coin 3.1.3. It was released shortly before or together with version 3.x.x.

VolkerEnderlein commented 5 years ago

Original comment by brune aris (Bitbucket: BurneAris, ).


Thank you guys @veelo @VolkerEnderlein ,I will try your method.

VolkerEnderlein commented 5 years ago

Original comment by brune aris (Bitbucket: BurneAris, ).


@volker Enderlein I have encountered a new problem after using your method and the build process of coin3d is correct, how should i fix it?thank you! error LNK2019: Unable to parse external symbol "declspec(dllimport) public: thiscall SbByteBuffer::~SbByteBuffer(void)" (_imp??1SbByteBuffer@@QAE@XZ), the symbol in the function "public: void __thiscall SIM: :Coin3D::Quarter::QuarterWidget::setNavigationModeFile(class QUrl const &)" (?setNavigationModeFile@QuarterWidget@Quarter@Coin3D@SIM@@QAEXABVQUrl@@@z) is referenced QuarterWidget.obj quarter1

VolkerEnderlein commented 5 years ago

Original comment by Volker Enderlein (Bitbucket: VolkerEnderlein, GitHub: VolkerEnderlein).


@BurneAris unfortunately I cannot reproduce the issues with the current version of the repository.

How are you building your Coin and your Quarter? What version of Qt are you using? What platform are you compiling for? What compiler are you using (probably MSVC from the error codes, but what version)?

My typical build sequence on Windows command prompt for both Coin and Quarter looks like this:

mkdir installed
hg clone https://bitbucket.org/Coin3D/coin coin
cd coin
cmake -H. -Bbuildit -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_TRY_COMPILE_CONFIGURATION=Release -DCOIN_BUILD_DOCUMENTATION=OFF -DCMAKE_INSTALL_PREFIX=C:\Data\Coin\installed -DCMAKE_PREFIX_PATH=C:\Data\Coin\installed;C:\Data\Qt\5.10.1\msvc2015_64
cmake --build buildit --target INSTALL --config Release -- /nologo /verbosity:minimal /maxcpucount

hg clone https://bitbucket.org/Coin3D/quarter quarter
cd quarter
cmake -H. -Bbuildit -G "Visual Studio 14 2015 Win64" -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_TRY_COMPILE_CONFIGURATION=Release -DQUARTER_BUILD_DOCUMENTATION=OFF -DCMAKE_INSTALL_PREFIX=C:\Data\Coin\installed -DCMAKE_PREFIX_PATH=C:\Data\Coin\installed;C:\Data\Qt\5.10.1\msvc2015_64
cmake --build buildit --target INSTALL --config Release -- /nologo /verbosity:minimal /maxcpucount

And this runs without errors. Note, that I am using the current version from the repository, not Coin 3.1.3 or Quarter 1.0.0.

VolkerEnderlein commented 5 years ago

Original comment by Volker Enderlein (Bitbucket: VolkerEnderlein, GitHub: VolkerEnderlein).


I am closing this issue as there has been no activity for months. Feel free to reopen it if you have further comments or questions related to this issue. Otherwise, please create a new issue.