Coder Social home page Coder Social logo

runtimecompiledcplusplus / runtimecompiledcplusplus Goto Github PK

View Code? Open in Web Editor NEW
2.1K 130.0 230.0 40 MB

Change C++ code at runtime

Home Page: http://runtimecompiledcplusplus.blogspot.com/

C++ 89.37% C 9.67% CMake 0.96%
runtimecompiledcplusplus c-plus-plus compile live-coding windows linux macos cpp rccpp gamedev

runtimecompiledcplusplus's Introduction

Support development of Runtime Compiled C++ through Github Sponsors or our Patreon

Become a Patron

Runtime Compiled C++ sample code

Runtime-Compiled C++ (RCC++) is a way to reliably make major changes to your C++ code at runtime and see the results immediately. It's aimed at games development but could be useful in any industry where turnaround times are a bottleneck.

RCC++ is primarily designed to shorten iteration times in development - developers can build their project, run it, make changes during runtime and see the results almost immediately. If needed, shipping code can disable runtime compilation in a number of ways. RCC++ is not intended as a method to allow end users of a shipped binary to compile modifications, though with some work it can be used this way.

Features

  • Cross platform, supporting MSVC on Windows, Clang and GCC or any compiler which understands GCC options on Linux and Mac OSX, and relatively easy to port to new compilers and platforms.
  • Simple in memory serialization so you can preserve object state in a safe way between compiles.
  • Error protection so that when you make a mistake during programming which would normally crash your application you can correct and recover.
  • Undo and Redo which allows you to quickly swap between changes at runtime, great for testing whether a subtle code change helps.
  • Control over optimization levels so you can switch one file into debug, add a break point and see the state in more clarity than when it's fully optimized.

Supported OS / Compilers:

For Visual Studio the main project file is found in the Aurora directory. All dependencies should be normally present.

Linux requires the following dependencies installed for the SimpleTest project (use "sudo apt-get install NAME"):

  • libfreetype6-dev
  • libx11-dev
  • libgl1-mesa-dev
  • libglu1-mesa-dev
  • g++, if you're already doing C++ development you should have this
  • libglfw-dev, if using system glfw, otherwise this comes prebuilt for 64bit Linux. To use the system glfw set the option GLFW_SYSTEM to ON - cmake .. -DGLFW_SYSTEM=ON

For cmake, create a folder called build in the Aurora directory and run cmake from there followed by make: on Linux run "mkdir build && cd build && cmake .. && make" from Aurora dir.

License (zlib)

Copyright (c) 2010-2020 Matthew Jack and Doug Binks

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

runtimecompiledcplusplus's People

Contributors

abuus avatar ashalah avatar dforsten avatar dougbinks avatar ethan-tqa avatar juliettef avatar matthewjack avatar momodeve avatar moodyhunter avatar ptdave20 avatar pthom avatar runtimecompiledcplusplus avatar sarcasm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

runtimecompiledcplusplus's Issues

Question: Modifiable class macro discovery within static libs

Been back and forth on this for a few days now, but is there a discovery limitation with using RCCPP within project static libs?

Project setup (VS)
#subModule (static lib)
#main (.exe)

If the runtime modifiable class is within main (.exe) the RunTimeObjectSystem is able to locate and pickup the constructors.

However without changing the file location (so the existing search paths are still accurate). Moving the same class into the static lib subModule. It fails to locate the constructor macro.

A work around so far has been to place the REGISTERSINGLETON/REGISTERCLASS macro within another file that isn't loaded via RunTimeObjectSystem but this obviously isn't ideal.

I've also tried using the various methods for linking the static lib. But this doesn't aid in discovery of those macros.
RUNTIME_COMPILER_LINKLIBRARY and RuntimeObjectSystem::AddLibraryDir

xcopy requires "

Short bug, but cannot push patch ...

In Renderer_VS2010

the post-build event requires " to be working, all times at any locale

fixed line would be

xcopy /y "$(SolutionDir)\External\assimp\bin\assimp_release-dll_win32*.dll" "$(OutDir)"

VS 2017 'GetObject' is not a member of 'IObjectFactorySystem'

Hello! I was having problems I added this to my project and compiled (After repairing error that I had Project compiled but runtime compilation doesn't seem to be working) a few months ago.
Now I returned to this, I've made class for single file Runtime Compiling that has all necessary code form ConsoleExample and I have new problems...
-error from the title
-I installed everything that I found for visual studio 2012 (that people in internet suggested to install) and I still had error that I don't have build tools (for VS 2012), so I've done that what VS was suggesting (used 'retaget project'). I am saying this because maybe that was a wrong move.

I am using:
-SFML (I will maybe move to clean OpenGl in the future)

Saving header files more than once does not trigger recompilation in release configuration

In Release / Win32 configuration, saving a runtime header file more than once results in the dependent file(s) no longer compiling.

REPRODUCTION STEPS:

  • Open Aurora_VS2010 solution.
  • Select Solution Configuration "Release" and Platform "Win32"
  • Build and run the SimpleTest application
  • save header file Behavior_RBC_Base.h
  • In the Output window, several dependent source files are listed as being compiled.
  • Save Behavior_RBC_Base.h again
  • Expected: as before, the source files are compiled.
  • ACTUAL: the dependent source files are NOT compiled.

Simplify RuntimeCompiledCPlusPlus by loading .dll's in RAM

RuntimeCompiledCPlusPlus has it's own mechanics to compile cpp file into object file, which in a turn leads to need of linking .cpp into .dll. This means that native C++ can be supported, but most probably managed C++ is out of question.

It would simplify hot reload support if .dll could be just reloaded as such, and compile and linking would be handled by visual studio IDE / build chain.

To support .dll re-loading - maybe it makes sense to load entire .dll into RAM so file lock would not be present and IDE can compile .dll out of box.

Loading .dll into RAM is something that is supported with some limitations by C#, but not native C++ - until now -

https://github.com/tapika/dllloader

This project demoes how dll can be loaded into RAM for windows. (Somehow similar approaches can be found for other os's - for example https://x-c3ll.github.io/posts/fileless-memfd_create/)

Maybe logic of hot reload could be recoded as:

  • Load .dll into ram.
  • Wait for .dll to change on file system
  • Check that there is no ongoing build processes (presence of msbuild, devenv.com, cl.exe, link.exe, cmake is detected) - and reload .dll

This most probably will work with native C++, with C++/cli support is also possible to achieve, but need to re-consider assembly strong naming.

I'm willing to help if anyone wants to try out this approach.

Stack Cookie Check Failure error

I'm trying to use RuntimeCompiledCPlusPlus in my own game engine and I'm having a very strange error. I've created a main loop class that looks like this:

RUNTIME_COMPILER_SOURCEDEPENDENCY;

struct RCCppMainLoop : IRCCppMainLoop, TInterface<IID_ENDInterfaceID, IObject>
{
RCCppMainLoop()
{
PerModuleInterface::g_pSystemTable->mainLoop = this;
std::cout << "New Main Loop Constructed" << std::endl;
}

virtual void MainLoop() override
{
	std::cout << "TEST 1" << std::endl;
}

};

REGISTERSINGLETON(RCCppMainLoop, true);

The system table has a pointer to this main loop class. I ran this code in a Debug configuration in Visual Studio 2017 on Windows, and I got an exception in gs_report.c that says "Stack cookie instrumentation code detected a stack-based buffer overrun." Looking at the call stack, it seems to occur in the REGISTERSINGLETON macro when constructing the TObjectConstructorConcrete class. Looking at the memory section of visual studio, it seems like the m_pRuntimeTrackingList vector is null.

What can I do to fix this, if anything? Thank you in advance for the help!

Gallery: projects using RuntimeCompiledCPlusCPlus

Hello,

I was wondering if it would be useful to open an issue that would not be a real issue, but a way to collect info about the projects using RuntimeCompiled CPlusCPlus, such a ImGui does in its Gallery issue.

Feel free to close this issue if you think this is not appropriate.

Thanks for this excellent tool!

Unable to runtime compile with a non-default gcc

Hello,
It seems that the runtime compilation only allows using default g++ and there is no way to override the compiler location.

Passing a custom location to the hardcoded compile command (in Compiler_PlatformPosix.cpp) would be a nice improvement.

Is there any better way then passing another argument to the RunCompile() function? It feels the code has to be updated in multiple places.

Linking compile output back into project

I wanted to implement RCC for the scripting system in my game and not for the whole engine. I have a game project and an engine project. The game project uses the Engine project as a static library. In the engine project, things such as Cameras are defined. They are not defined in the game project, they are accessed through the static library. Now when compiling scripts, since the symbols for things such as the methods a Camera has are defined in the Engine project, the linker fails. Is there a way to resolve the external symbols defined in the Engine when compiling the scripts (Linking to the .lib of the engine kind of works but the new module sort of runs in it's own context and I also have to link all the libraries that the Engine uses)?

QtCreator

It would be nice to support QtCreator.

unresolved external symbols VS2017 RuntimeObjectSystem

Always after compiling project with that code:
IRuntimeObjectSystem* rOS; rOS=new RuntimeObjectSystem;
I am getting 1 unresolved external symbol:

error LNK2001: unresolved external symbol "public: __cdecl RuntimeObjectSystem::RuntimeObjectSystem(void)" (??0RuntimeObjectSystem@@qeaa@XZ

RUNTIME_COMPILER_SOURCEDEPENDENCY off-by-1 error

On VS2019 the demo at https://github.com/juliettef/RCCpp-DearImGui-GLFW-example fails to build at runtime, because imgui/imgui_demo isn't linked. As a workaround, one can duplicate RCCppMainLoop.cpp#17:
RUNTIME_COMPILER_SOURCEDEPENDENCY_FILE( "imgui/imgui_demo", ".cpp" );
to make it compile successfully.

It seems like a81c8fd introduced an off-by-1 error where the last RUNTIME_COMPILER_SOURCEDEPENDENCY_FILE has no effect.

(Note that the other example at https://github.com/dougbinks/RCCpp_DX11_Example is unaffected, because it references an older version of RCCpp, which doesn't have the commit mentioned above.)

When compiling and debugging, Registered classes becomes locked.

When I am trying to debug my code or even re-compile my registered objects, they become locked of temporary deleted? When I go to the folder where they are located I get a message as well that I can't enter the folder. When I restart visual studio the files become available again. Is there a setting I need to set because when I also want to compile again the compiler can not find the files either anymore.

Getting Log: ObjectFactorySystem::AddConstructors() called with no constructors

HI. I have been following the tutorial and GLFW/ImGui example files to integrate RCC++ into my game engine (ImGui, GLFW). Everything is linked using CMake and it compiles.
I keep getting this Log:
ObjectFactorySystem::AddConstructors() called with no constructors in the console. Following this, the IObjectConstructor* array constructors in ObjectFactorySystem is empty and I couldn't understand how and where to populate it.
Also I went through the ConsoleExample and the ConsoleGame.cpp has IObjectConstructor* pCtor = m_pRuntimeObjectSystem->GetObjectFactorySystem()->GetConstructor( "RuntimeObject01" ); which I assumed had something to do with the error but it didn't help either.
Please help me out as this has become really confusing for me.

What I am trying to achieve is to add a run time scripting system where the user creates a script from the engine and codes into it, and it compiles real-time. I need to add the source files to the compile stream and have changes reflected in the engine according to the code because the script cannot be a part of the project as they don't exist before.
Any advice on this would be appreciated as well.

ConsoleExample does not update

Hi there,
Great idea and very interesting project!

I've got a few newbie question rather then issues while going trough the ConsoleExample.

I don't quite get how the workflow should look like. Does the application have to be started from an IDE, in order to communicate with the runtime?

Is the workflow limited to specific IDEs (VS on Windows and Eclipse CDT on Linux)? I'm using Code::Blocks on Linux.

From what I understand any change introduced to Update function (in the ConsoleExample) should be updated at the runtime on the source file save. That seems to work for me - I get the following output every time file content will change...

Re-parsed 1 files.
NativeParser::OnParserStart(): Starting re-parsing for project 'ConsoleExample'...
Project 'ConsoleExample' parsing stage done (175 total parsed files, 6350 tokens in 0 minute(s), 0.017 seconds).
NativeParser::GetAllPathsByFilename(): Traversing '/home/kuba/build/rccp/Aurora/Examples/ConsoleExample' for: RuntimeObject01.*
NativeParser::GetAllPathsByFilename(): Traversing ' - /home/kuba/build/rccp/Aurora/Examples/ConsoleExample/' for: RuntimeObject01.*
NativeParser::GetAllPathsByFilename(): Found 1 files:

  • /home/kuba/build/rccp/Aurora/Examples/ConsoleExample/RuntimeObject01.cpp
    ClassBrowser::OnThreadEvent(): Updating class browser...
    ClassBrowser::OnThreadEvent(): Class browser updated.

.. but it seems like changes are not reflected at the console output. How can I diagnose the problem?

Thank you,
kuba

Crash if RuntimeObjectSystem destroyed while compilation is in progress.

Basically, if a compilation is started but the app is closed before it can finish, RCC++ will crash.

On my machine, the crash is manifested in WatchCallback() from FileWatcherWin32.cpp using a pWatch that has been freed, or in ReadAndHandleOutputThread() again accessing data that has been already freed.

I ran into this probably out of habbit closing the game fast, saw the crash, then not realizing for two whole hours of debugging that I'm not letting the compile finish before I close the game. LOL.

Anyway, the fix is trivial for me. In my code, before this line:

delete pRuntimeObjectSystem;

I add:

if (pRuntimeObjectSystem->GetIsCompiling())
{
    OutputDebugStringA("\n!!! Compile in progress, waiting to finish it.!!!\n");
    while (!pRuntimeObjectSystem->GetIsCompiledComplete())
    {
        Sleep(50);
    }
}

This fixed it for me, but how/if you choose to fix it is up to you. I'm not sure this fix is acceptable. What if that particular compile is really long and the user closed the game to cancel the compile? Not knowing this happens could throw people off.

Question: Use Case: Self-optimization

Hi,

I stumbled across your project while looking for a way to compile optimized code depending on runtime input. From what I've seen, it's a great project, especially because it is cross-platform.

Since you mention that this (runtime compilation in production) is not the main application scenario, I am curious if you think that RuntimeCompiledCPlusPlus is something that would work well in this case nevertheless.

The application runs on our own machines so we can ensure that all required build tools are available so this won't be a problem.

Best,
Florian

Feature request: precompiled headers?

Hi, Doug!

Wouldn't be great to compile code at runtime using precompiled headers?

Due to nature of openFrameworks (which pulls lots and lots of headers from variety of libraries) right now my ofAppLive project takes about 5 seconds to recompile a source file at runtime with RCC++, and it's the same time needed for standard recompiling. But if I use Cotire CMake module that precompiles headers automatically for me, the compile time is reduced to less than a second!

What do you think, will it be possible to use this technique with RCC++?

Thanks!

std lib includes not found during runtime compilation

Trying to follow the tutorial and changing the color of the cells in the SimpleTest project, I get the following error message (couldn't copy text and was too lazy to type it, so imgur link:): http://i.imgur.com/W85uiqQ.png

Just to make sure the library is not trying to call an old version of VS or something, I uninstalled all other versions from my system (now there's only VS 2013 left), but nothing changed.

Linking error. Bug?

Hi, I adapted the console example and received this error:

/usr/local/lib64/libRuntimeCompiler.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'

The rest of the program compiles and links fine.

Missing Xrandr

For Debian 9.3 (amd64) In RuntimeCompiledCPlusPlus/Aurora/CMakeLists.txt at line 109, you missed the link with Xrandr. The correct line should be:

set(GLFW_LIBRARIES glfw X11 Xrandr pthread)

else this will produce undefined symbols like: XRRGetScreenInfo ...

Tutorial 01 doesn't work with VS2013 with CMake

Hello,

I just built used CMake to build this project with VS2013. Everything compiles fine but changing my source file changes nothing in the program. I'd like to know where I should look into this.
I'll try compiling and running with GCC later today.

Compile errors can cause header file tracking to effectively break.

When a compile error arises during the compilation of a change which included a runtime header change, the need to compile the dependant files when the error is corrected is effectively lost.

The solution should be to keep track of files which need compiling until compiled modules are actually loaded.

Visual Studio 2019 debug info issue after first recompile

Error:

objectinterfacepermodulesource.oj : warning LNK4204: 'C:\Users\Doug\AppData\Local\Temp\E5D4.pdb' is missing debugging information for referencing module; linking object as if no debug info

New versions of VS appear not to load the pdb created by earlier compiles despite it being the one the object files were generated for.

I have a fix which is in further testing.

Failed to load module (fatal error C1041: cannot open program database '...\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS)

The issue only happens after a bug was introduced (tutorial 2) and fixed OR after the execution of the program was paused by a breakpoint.

I disabled Edit and Continue but did not help. Also, I have observed that devenv.exe holds vc140.pdb.

/FS flag is set for all the projects for AOT compilation (not sure if that has any effect) and also SetAdditionalCompileOptions("/FS", 0); is called at the beginning of the program.

Environment: Windows 10, VS2017, both Win32 and x64.

I will try to reproduce it on my other computer and report back later.

no realtime rendering on OSX 10.8

Hi !
I've tested the basic demo Pulse on OSX with Xcode.

Changing the code (background color) and clicking on Recompile does not seems to work (background still the same)
Quitting and compiling back the app makes the background change.

Any specific information on how to make it run on Xcode ?

Thanks !

Unable to install on osx mavericks

Hi, I am very curious of this interesting project so I tried to compile it on my mac.
Unfortunately, I got an "Undefined symbols for architecture x86_64", specifically:

Linking CXX shared library libSystems.dylib
Undefined symbols for architecture x86_64:
  "Rocket::Core::Dictionary::Set(Rocket::Core::StringBase<char> const&, Rocket::Core::Variant const&)", referenced from:
      void Rocket::Core::Element::SetAttribute<char const*>(Rocket::Core::StringBase<char> const&, char const* const&) in GUIElement.cpp.o
  "Rocket::Core::StringBase<char>::FormatString(unsigned int, char const*, ...)", referenced from:
      bool Rocket::Core::Variant::GetInto<Rocket::Core::StringBase<char> >(Rocket::Core::StringBase<char>&) const in GUIElement.cpp.o
      Rocket::Core::TypeConverterVectorString<Rocket::Core::Colour<unsigned char, 255>, unsigned char, 4>::Convert(Rocket::Core::Colour<unsigned char, 255> const&, Rocket::Core::StringBase<char>&) in GUIElement.cpp.o
      Rocket::Core::TypeConverterVectorString<Rocket::Core::Colour<float, 1>, float, 4>::Convert(Rocket::Core::Colour<float, 1> const&, Rocket::Core::StringBase<char>&) in GUIElement.cpp.o
      Rocket::Core::TypeConverterVectorString<Rocket::Core::Vector2<float>, float, 2>::Convert(Rocket::Core::Vector2<float> const&, Rocket::Core::StringBase<char>&) in GUIElement.cpp.o
  "Rocket::Core::FontDatabase::LoadFontFace(Rocket::Core::StringBase<char> const&)", referenced from:
      RocketLibSystem::LoadFonts(char const*) in RocketLibSystem.cpp.o
  "Rocket::Core::FileInterface::OnReferenceDeactivate()", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
  "Rocket::Core::FileInterface::Length(unsigned long)", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
  "Rocket::Core::FileInterface::Release()", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
  "Rocket::Core::FileInterface::FileInterface()", referenced from:
      RocketLibSystemFileInterface::RocketLibSystemFileInterface(Rocket::Core::StringBase<char> const&) in RocketLibSystemFileInterface.cpp.o
      RocketLibSystemFileInterface::RocketLibSystemFileInterface(Rocket::Core::StringBase<char> const&) in RocketLibSystemFileInterface.cpp.o
  "Rocket::Core::FileInterface::~FileInterface()", referenced from:
      RocketLibSystemFileInterface::~RocketLibSystemFileInterface() in RocketLibSystemFileInterface.cpp.o
      RocketLibSystemFileInterface::~RocketLibSystemFileInterface() in RocketLibSystemFileInterface.cpp.o
      RocketLibSystemFileInterface::~RocketLibSystemFileInterface() in RocketLibSystemFileInterface.cpp.o
  "Rocket::Core::ElementDocument::Hide()", referenced from:
      GUIDocument::Hide() in GUIDocument.cpp.o
      non-virtual thunk to GUIDocument::Hide() in GUIDocument.cpp.o
      GUISystem::LoadDocument(char const*, char const*) in GUISystem.cpp.o
  "Rocket::Core::ElementDocument::Show(int)", referenced from:
      GUIDocument::Show() in GUIDocument.cpp.o
      non-virtual thunk to GUIDocument::Show() in GUIDocument.cpp.o
  "Rocket::Core::RenderInterface::OnReferenceDeactivate()", referenced from:
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::RenderInterface::GetVerticalTexelOffset()", referenced from:
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::RenderInterface::GetHorizontalTexelOffset()", referenced from:
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::RenderInterface::Release()", referenced from:
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::RenderInterface::RenderInterface()", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RocketLibSystemRenderInterfaceOpenGL() in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::RocketLibSystemRenderInterfaceOpenGL() in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::RenderInterface::~RenderInterface()", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::~RocketLibSystemRenderInterfaceOpenGL() in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::~RocketLibSystemRenderInterfaceOpenGL() in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::SystemInterface::LogMessage(Rocket::Core::Log::Type, Rocket::Core::StringBase<char> const&)", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::TranslateString(Rocket::Core::StringBase<char>&, Rocket::Core::StringBase<char> const&)", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::ActivateKeyboard()", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::DeactivateKeyboard()", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::OnReferenceDeactivate()", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::Release()", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::JoinPath(Rocket::Core::StringBase<char>&, Rocket::Core::StringBase<char> const&, Rocket::Core::StringBase<char> const&)", referenced from:
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::SystemInterface::~SystemInterface()", referenced from:
      RocketLibSystemSystemInterface::~RocketLibSystemSystemInterface() in RocketLibSystemSystemInterface.cpp.o
      RocketLibSystemSystemInterface::~RocketLibSystemSystemInterface() in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::GetFileInterface()", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::LoadTexture(unsigned long&, Rocket::Core::Vector2<int>&, Rocket::Core::StringBase<char> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::SetFileInterface(Rocket::Core::FileInterface*)", referenced from:
      RocketLibSystem::Initialise() in RocketLibSystemGLFW.cpp.o
  "Rocket::Core::GetSystemInterface()", referenced from:
      RocketLogSystem::Push() in RocketLogSystem.cpp.o
  "Rocket::Core::ReferenceCountable::AddReference()", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::ReferenceCountable::RemoveReference()", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::ReferenceCountable::GetReferenceCount()", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::ReferenceCountable::OnReferenceActivate()", referenced from:
      vtable for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
      vtable for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      vtable for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "Rocket::Core::Log::Message(Rocket::Core::Log::Type, char const*, ...)", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::LoadTexture(unsigned long&, Rocket::Core::Vector2<int>&, Rocket::Core::StringBase<char> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "Rocket::Core::Context::GetDocument(Rocket::Core::StringBase<char> const&)", referenced from:
      GUISystem::LoadDocument(char const*, char const*) in GUISystem.cpp.o
      GUISystem::GetDocument(char const*) in GUISystem.cpp.o
  "Rocket::Core::Context::LoadDocument(Rocket::Core::StringBase<char> const&)", referenced from:
      GUISystem::LoadDocument(char const*, char const*) in GUISystem.cpp.o
  "Rocket::Core::Context::ProcessKeyUp(Rocket::Core::Input::KeyIdentifier, int)", referenced from:
      KeyCallback(int, int) in InputGLFW.cpp.o
  "Rocket::Core::Context::ProcessKeyDown(Rocket::Core::Input::KeyIdentifier, int)", referenced from:
      KeyCallback(int, int) in InputGLFW.cpp.o
  "Rocket::Core::Context::UnloadDocument(Rocket::Core::ElementDocument*)", referenced from:
      GUISystem::LoadDocument(char const*, char const*) in GUISystem.cpp.o
  "Rocket::Core::Context::ProcessMouseMove(int, int, int)", referenced from:
      MousePosCallback(int, int) in InputGLFW.cpp.o
  "Rocket::Core::Context::ProcessTextInput(unsigned short)", referenced from:
      CharCallback(int, int) in InputGLFW.cpp.o
      KeyCallback(int, int) in InputGLFW.cpp.o
  "Rocket::Core::Context::ProcessMouseWheel(int, int)", referenced from:
      MouseWheelCallback(int) in InputGLFW.cpp.o
  "Rocket::Core::Context::ProcessMouseButtonUp(int, int)", referenced from:
      MouseButtonCallback(int, int) in InputGLFW.cpp.o
  "Rocket::Core::Context::ProcessMouseButtonDown(int, int)", referenced from:
      MouseButtonCallback(int, int) in InputGLFW.cpp.o
  "Rocket::Core::Element::SetInnerRML(Rocket::Core::StringBase<char> const&)", referenced from:
      GUIElement::SetInnerRML(char const*) in GUIElement.cpp.o
  "Rocket::Core::Element::SetProperty(Rocket::Core::StringBase<char> const&, Rocket::Core::StringBase<char> const&)", referenced from:
      GUIElement::SetProperty(char const*, char const*) in GUIElement.cpp.o
  "Rocket::Core::Element::GetClientWidth()", referenced from:
      GUIElement::GetClientWidth() const in GUIElement.cpp.o
      non-virtual thunk to GUIElement::GetClientWidth() const in GUIElement.cpp.o
  "Rocket::Core::Element::GetElementById(Rocket::Core::StringBase<char> const&)", referenced from:
      GUIElement::GetElementById(char const*) in GUIElement.cpp.o
  "Rocket::Core::Element::GetClientHeight()", referenced from:
      GUIElement::GetClientHeight() const in GUIElement.cpp.o
      non-virtual thunk to GUIElement::GetClientHeight() const in GUIElement.cpp.o
  "Rocket::Core::Element::AddEventListener(Rocket::Core::StringBase<char> const&, Rocket::Core::EventListener*, bool)", referenced from:
      GUIElement::AddEventListener(char const*, IGUIEventListener*) in GUIElement.cpp.o
  "Rocket::Core::Element::RemoveEventListener(Rocket::Core::StringBase<char> const&, Rocket::Core::EventListener*, bool)", referenced from:
      GUIElement::RemoveEventListener(char const*, IGUIEventListener*) in GUIElement.cpp.o
  "Rocket::Core::Element::SetId(Rocket::Core::StringBase<char> const&)", referenced from:
      GUISystem::LoadDocument(char const*, char const*) in GUISystem.cpp.o
  "Rocket::Core::Factory::ClearStyleSheetCache()", referenced from:
      GUISystem::ClearStyleSheetCache() in GUISystem.cpp.o
  "Rocket::Core::Variant::Set(char const*)", referenced from:
      void Rocket::Core::Element::SetAttribute<char const*>(Rocket::Core::StringBase<char> const&, char const* const&) in GUIElement.cpp.o
  "Rocket::Core::Variant::~Variant()", referenced from:
      void Rocket::Core::Element::SetAttribute<char const*>(Rocket::Core::StringBase<char> const&, char const* const&) in GUIElement.cpp.o
  "Rocket::Debugger::GetLogElement()", referenced from:
      GUISystem::GetLogElement() in GUISystem.cpp.o
  "AURenMesh::LoadFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      AssetSystem::CreateRenderableMeshFromFile(char const*) in AssetSystem.cpp.o
  "AURenMesh::AURenMesh()", referenced from:
      AssetSystem::CreateRenderableMeshFromFile(char const*) in AssetSystem.cpp.o
  "Rocket::Core::Dictionary::Get(Rocket::Core::StringBase<char> const&) const", referenced from:
      GUIEvent::GetParameter(char const*, char*, unsigned long) const in GUIElement.cpp.o
  "Rocket::Core::Event::GetParameters() const", referenced from:
      GUIEvent::GetParameter(char const*, char*, unsigned long) const in GUIElement.cpp.o
  "Rocket::Core::Element::GetAttribute(Rocket::Core::StringBase<char> const&) const", referenced from:
      GUIElement::GetAttribute(char const*, char*, unsigned long) const in GUIElement.cpp.o
  "Rocket::Core::Element::GetId() const", referenced from:
      GUIElement::GetId() const in GUIElement.cpp.o
      non-virtual thunk to GUIElement::GetId() const in GUIElement.cpp.o
  "AURenMesh::Render(AUColor const*) const", referenced from:
      AURenderableMesh::Render() const in AssetSystem.cpp.o
  "typeinfo for Rocket::Core::FileInterface", referenced from:
      typeinfo for RocketLibSystemFileInterface in RocketLibSystemFileInterface.cpp.o
  "typeinfo for Rocket::Core::RenderInterface", referenced from:
      typeinfo for RocketLibSystemRenderInterfaceOpenGL in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "typeinfo for Rocket::Core::SystemInterface", referenced from:
      typeinfo for RocketLibSystemSystemInterface in RocketLibSystemSystemInterface.cpp.o
  "_glBindTexture", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::GenerateTexture(unsigned long&, unsigned char const*, Rocket::Core::Vector2<int> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glBlendFunc", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
  "_glColorPointer", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glDeleteTextures", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::ReleaseTexture(unsigned long) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glDisable", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::EnableScissorRegion(bool) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glDisableClientState", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glDrawElements", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glEnable", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::EnableScissorRegion(bool) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glEnableClientState", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glGenTextures", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::GenerateTexture(unsigned long&, unsigned char const*, Rocket::Core::Vector2<int> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glGetIntegerv", referenced from:
      RocketLibSystem::OpenWindow(char const*, bool) in RocketLibSystemGLFW.cpp.o
      WindowResize(int, int) in RocketLibSystemGLFW.cpp.o
      RocketLibSystemRenderInterfaceOpenGL::SetScissorRegion(int, int, int, int) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glLoadIdentity", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
  "_glMatrixMode", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
  "_glOrtho", referenced from:
      RocketLibSystem::PreRenderRocketLib() in RocketLibSystemGLFW.cpp.o
  "_glPopMatrix", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glPushMatrix", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glScissor", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::SetScissorRegion(int, int, int, int) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glTexCoordPointer", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glTexImage2D", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::GenerateTexture(unsigned long&, unsigned char const*, Rocket::Core::Vector2<int> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glTexParameteri", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::GenerateTexture(unsigned long&, unsigned char const*, Rocket::Core::Vector2<int> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glTranslatef", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glVertexPointer", referenced from:
      RocketLibSystemRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex*, int, int*, int, unsigned long, Rocket::Core::Vector2<float> const&) in RocketLibSystemRenderInterfaceOpenGL.cpp.o
  "_glViewport", referenced from:
      WindowResize(int, int) in RocketLibSystemGLFW.cpp.o
  "_glfwCloseWindow", referenced from:
      RocketLibSystem::CloseWindow() in RocketLibSystemGLFW.cpp.o
  "_glfwGetKey", referenced from:
      GetKeyModifierState() in InputGLFW.cpp.o
  "_glfwGetTime", referenced from:
      RocketLibSystem::GetElapsedTime() in RocketLibSystemGLFW.cpp.o
      TimeSystem::StartSession() in TimeSystem.cpp.o
      TimeSystem::GetRawTime() const in TimeSystem.cpp.o
      TimeSystem::GetSessionTimeNow() const in TimeSystem.cpp.o
  "_glfwGetWindowParam", referenced from:
      RocketLibSystem::EventLoop(void (*)()) in RocketLibSystemGLFW.cpp.o
  "_glfwInit", referenced from:
      RocketLibSystem::Initialise() in RocketLibSystemGLFW.cpp.o
  "_glfwOpenWindow", referenced from:
      RocketLibSystem::OpenWindow(char const*, bool) in RocketLibSystemGLFW.cpp.o
  "_glfwSetCharCallback", referenced from:
      InputGLFW::Initialise() in InputGLFW.cpp.o
  "_glfwSetKeyCallback", referenced from:
      InputGLFW::Initialise() in InputGLFW.cpp.o
  "_glfwSetMouseButtonCallback", referenced from:
      InputGLFW::Initialise() in InputGLFW.cpp.o
  "_glfwSetMousePosCallback", referenced from:
      InputGLFW::Initialise() in InputGLFW.cpp.o
  "_glfwSetMouseWheelCallback", referenced from:
      InputGLFW::Initialise() in InputGLFW.cpp.o
  "_glfwSetTime", referenced from:
      RocketLibSystem::Initialise() in RocketLibSystemGLFW.cpp.o
  "_glfwSetWindowSizeCallback", referenced from:
      RocketLibSystem::OpenWindow(char const*, bool) in RocketLibSystemGLFW.cpp.o
  "_glfwSetWindowTitle", referenced from:
      RocketLibSystem::OpenWindow(char const*, bool) in RocketLibSystemGLFW.cpp.o
  "_glfwSleep", referenced from:
      RocketLibSystem::EventLoop(void (*)()) in RocketLibSystemGLFW.cpp.o
  "_glfwSwapBuffers", referenced from:
      RocketLibSystem::FlipBuffers() in RocketLibSystemGLFW.cpp.o
  "_glfwTerminate", referenced from:
      RocketLibSystem::Shutdown() in RocketLibSystemGLFW.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libSystems.dylib] Error 1
make[1]: *** [CMakeFiles/Systems.dir/all] Error 2
make: *** [all] Error 2
L

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.