Compling against Alembic



  • I'm making a tool that compiles against Alembic and I'm getting a Linker error. Normally I'd use the MSVC FORCE option and ignore the error since on the surface it rarely causes any major issues, but I'm really curious of late. Is there nay specific gotchas I need to be aware of in the C4D MSVC configurations to get get this error to go away?

    On another note, is their C4D API specific ways to directly open and write Alembic archives?



  • Hi eldiren, thanks for reaching out us.

    With regard to linking against Alembic, I can't actually help unless you provide:

    • a better description of the error reported;
    • the VS version used
    • the C4D version used
    • the Alembic version used
      and
    • project/solution files of your plugin.

    With regard to opening and writing .abc, there's a script in the SDK examples that shows how to export an Alembic file. Similarly, you can infer the process of importing an .abc.

    Best, Riccardo



  • I'm getting one linker error. It's better than with the R19 SDK, I used to get a lot more. I'm using the R20 SDK against Cinema 4D R20 with Alembic 1.7.1.

    LNK2019	unresolved external symbol "public: void __cdecl Alembic::Abc::v10::ErrorHandler::operator()(class stdext::exception &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??RErrorHandler@v10@Abc@Alembic@@QEAAXAEAVexception@stdext@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function __catch$??0?$ISchemaObject@VICurvesSchema@v10@AbcGeom@Alembic@@@v10@Abc@Alembic@@QEAA@AEBVIObject@123@W4WrapExistingFlag@123@AEBVArgument@123@2@Z$0
    


  • Hi eldiren, thanks for following up.

    With regard to the different amount of errors between R19 and R20 without better clarification on what were the errors on R19 I would not argue about things being "better".

    In R20 plugin project files are created by using the Project Tool whilst in R19 projects had to be setup manually. This could maybe helped to a certain extent.
    Because of the use of the Project Tool and the need to include both external headers and libraries I recommend to have a look at:

    Finally I recommend to switch to Alembic 1.7.7 which was the revision used in Cinema 4D R20 in order to limit potential conflicts due to the different revision level or to use your source in a separate namespace to make sure “your” Alembic binaries are used.

    Best, R


Log in to reply