Skip to content

Unresolved External Symbols when trying to use custom schema & general custom schema guidance #3140

@msf567

Description

@msf567

I am trying to consume my new schema in Visual Studio, but I must be doing something wrong because I am getting unresolved external symbol errors.

Here is my schema file for reference:

#usda 1.0
(
    """InteractableMesh Schema"""
    subLayers = [
        @usdGeom\schema.usda@
    ]
)

over "GLOBAL" (
    customData = {
        string libraryName = "SC"
        string libraryPath = "./"
        string libraryPrefix = "SC"
    }
) {}

class "InteractiveMesh" (
    doc = """A mesh that can be interacted with."""
    inherits = </Gprim>
    customData = {
        string className = "IMesh"
    }
)
{
    float state = 1.0 (
        doc = "The state of the interactable mesh"
    )
}

class ComplexPrim "ComplexPrim" (
    doc = """An example of a untyped IsA schema prim"""
    # Inherits from </SimplePrim> defined in simple.usda.
    inherits = </InteractiveMesh>
    customData = {
        string className = "Complex"
    }
)  
{
    string complexString = "somethingComplex"
}

The line that is failing is:
auto myComplex = pxr::SCComplex::Define(stagePtr, pxr::SdfPath("/MyComplexObject"));

The two errors:
unresolved external symbol "_declspec(dllimport) public: virtual cdecl pxrInternal_v0_24__pxrReserved::SCComplex::~SCComplex(void)" (imp??1SCComplex@pxrInternal_v0_24__pxrReserved@@UEAA@XZ) referenced in function WinMain

unresolved external symbol "declspec(dllimport) public: static class pxrInternal_v0_24__pxrReserved::SCComplex cdecl pxrInternal_v0_24__pxrReserved::SCComplex::Define(class pxrInternal_v0_24__pxrReserved__::TfWeakPtr const &,class pxrInternal_v0_24__pxrReserved__::SdfPath const &)" (imp?Define@SCComplex@pxrInternal_v0_24__pxrReserved_@@sa?AV12@AEBV?$TfWeakPtr@VUsdStage@pxrInternal_v0_24__pxrReserved__@@@2@AEBVSdfPath@2@@z) referenced in function WinMain

Some things to note:

  • I am definitely linking to the built .lib file in my visual studio project
  • My header files seem to be configured correctly (my compiler recognizes the SCComplex type just fine, and exposes the Define method)
  • Do I need to bring in the actual cpp files to my visual studio project? like "complex.cpp" etc? When I do that, I get a host of other errors, and it doesn't seem like that should be necessary because I am linking to the generated .lib file.

What am I missing? I have been trying to generate a simple schema for days, I would really appreciate some guidance here and maybe other people int he future will find this helpful.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildBuild-related issue/PRhelp wantedIndicates an issue where help and/or a pull request from the community would be very welcome

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions