GithubHelp home page GithubHelp logo

Comments (3)

photodiode avatar photodiode commented on May 31, 2024 1

I must have misunderstood that part.

Making a standalone vma.cpp and including only those two lines, then compiling using
g++ -g -c vma.cpp -lvulkan -o vma.o

And then including vma.o in my C project compilation together with -lstdc++ like this
gcc vulkan.c vma.o -std=c11 -Wall -lvulkan -lstdc++ -o vulkan
seems to work.

Not including -lstdc++ gives me this error message when I run the program
./vulkan: symbol lookup error: vulkan: undefined symbol: __cxa_pure_virtual

This works fine I guess.
Thank you for the suggestion!

from vulkanmemoryallocator.

calper-ql avatar calper-ql commented on May 31, 2024

Have you considered including

#define VMA_IMPLEMENTATION
#include "vk_mem_alloc.h"

in a C++ file and than linking against that ?

In the documentation it says:

To do it properly:

  1. Include "vk_mem_alloc.h" file in each CPP file where you want to use the library. This includes declarations of all members of the library.
  2. In exacly one CPP file define following macro before this include. It enables also internal definitions.
#define VMA_IMPLEMENTATION
#include "vk_mem_alloc.h"

It may be a good idea to create dedicated CPP file just for this purpose.

from vulkanmemoryallocator.

adam-sawicki-a avatar adam-sawicki-a commented on May 31, 2024

That's right. This library is written in C++, but has C-compatible interface. Thus you can include and use vk_mem_alloc.h in C or C++ code, but full implementation with VMA_IMPLEMENTATION macro must be compiled as C++, NOT as C. I've clarified this in the documentation. Thanks for this question.

from vulkanmemoryallocator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.