unresolved external symbol with berkelium on windows 7

335 views
Skip to first unread message

Jarrett Chisholm

unread,
Sep 28, 2013, 9:19:17 PM9/28/13
to berk...@googlegroups.com
Hi all

I'm trying to use berkelium on windows 7 and VS 2013 RC (as my project uses a bunch of c++11 features).

I've got a project that is using berkelium as the GUI system.  I've got it to compile on linux just fine, but my project is having trouble with the windows version of the library.

My project is first compiled to glr.lib, and then I include it in my game project (called dark horizon).  The glr project is the one that uses berkelium, and then dark horizon uses glr (not sure if that makes any difference?).

I downloaded the latest binary build of berkelium for windows here: https://github.com/sirikata/berkelium/downloads

Then, when I build, I get this error:

scons: Reading SConscript files ...
ECHO is on.
ECHO is on.
ECHO is on.
Compiling Glr
scons: Reading SConscript files ...
Parsing Shaders into header ShaderData.h
Done parsing Shaders into header ShaderData.h
scons: done reading SConscript files.
scons: Building targets ...
scons: `.' is up to date.
scons: done building targets.
Done

Compiling Dark Horizon
scons: done reading SConscript files.
scons: Building targets ...
link /nologo /OUT:build\darkhorizon.exe /LIBPATH:C:\Users\Jarrett\projects\chisholmsoft\glr\build /LIBPATH:C:\Users\Jarrett\projects\angelscript-sdk\angelscript\lib /LIBPATH:C:\Users\Jarrett\projects\sqlite3 /LIBPATH:C:\Users\Jarrett\projects\berkelium-win32\lib /LIBPATH:C:\Users\Jarrett\projects\SFML\lib "/LIBPATH:C:\Program Files\Assimp\lib\x86" "/LIBPATH:C:\Program Files (x86)\Boost\lib" /LIBPATH:C:\Users\Jarrett\projects\FreeImage\Dist "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib" glr.lib sqlite3.lib opengl32.lib glew32.lib berkelium.lib sfml-system.lib sfml-window.lib assimp.lib freeimage.lib Angelscript.lib libboost_log-vc120-mt-1_55.lib libboost_log_setup-vc120-mt-1_55.lib libboost_date_time-vc120-mt-1_55.lib libboost_thread-vc120-mt-1_55.lib libboost_wave-vc120-mt-1_55.lib libboost_regex-vc120-mt-1_55.lib libboost_program_options-vc120-mt-1_55.lib libboost_filesystem-vc120-mt-1_55.lib libboost_system-vc120-mt-1_55.lib build\main.obj build\common\logging\Logger.obj build\common\utilities\Properties.obj build\common\as_wrapper\ASRefObject.obj build\common\as_wrapper\AScriptModule.obj build\common\as_wrapper\AngelScript.obj build\common\as_wrapper\Class.obj build\common\as_wrapper\Method.obj build\common\as_wrapper\scriptstdstring\scriptstdstring.obj build\common\as_wrapper\scriptstdstring\scriptstdstring_utils.obj build\common\as_wrapper\scriptbuilder\scriptbuilder.obj build\common\as_wrapper\scriptarray\scriptarray.obj build\game\Actor.obj build\game\Camera.obj build\game\Constants.obj build\game\Entity.obj build\game\Game.obj build\game\Player.obj build\game\world\Locale.obj build\game\world\Location.obj build\game\world\World.obj build\game\world\WorldObject.obj build\game\graphics\GraphicsManager.obj build\game\graphics\GraphicsObject.obj build\game\angel_script\ClassFactory.obj build\game\angel_script\TestAtom.obj build\extras\FpsCamera.obj
glr.lib(GUI.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) bool __cdecl Berkelium::init(struct Berkelium::WeakString<wchar_t>,unsigned int,char const * * const)" (__imp_?init@Berkelium@@YA_NU?$WeakString@_W@1@IQAPBD@Z) referenced in function "public: virtual int __thiscall glr::gui::GUI::initialize(void)" (?initialize@GUI@gui@glr@@UAEHXZ)
glr.lib(HtmlGuiComponent.obj) : error LNK2001: unresolved external symbol "public: virtual void __thiscall Berkelium::WindowDelegate::onResizeRequested(class Berkelium::Window *,int,int,int,int)" (?onResizeRequested@WindowDelegate@Berkelium@@UAEXPAVWindow@2@HHHH@Z)

build\darkhorizon.exe : fatal error LNK1120: 2 unresolved externals
scons: building terminated because of errors.



I tried using the windows binaries here (http://berkelium.blao.de/2012-02-15/), which was suggested as the latest in another thread (although not linked from berkeluim.org).  They resolved issue 1 above, but I still get the second error ( unresolved external symbol ...'onResizeRequested').

Anyone have any ideas what might be causing this issue?

Cheers

Jarrett

Jarrett Chisholm

unread,
Sep 28, 2013, 9:24:48 PM9/28/13
to berk...@googlegroups.com
Hah, ok, well it appears the 'latest' binary build does not have the method 'onResizeRequested' in the include files, so I guess that could have something to do with it, eh?

Are there are really recent binaries that might have this method?

I'm going to try and compile chromium 11 with VS 2013 RC, but I'm thinking it's not going to be a smooth ride...:S

- Jarrett

Ewen Cheslack-Postava

unread,
Oct 1, 2013, 1:30:14 PM10/1/13
to berk...@googlegroups.com
Yeah, I highly doubt you'll get it to compile on a newer version. I
think there might be some posts on this list about somebody trying to
get it to compile with a newer version, but I don't remember the
outcome. And I haven't seen any newer binaries than the ones you've
tried.

Unfortunately, at this point, I can't really recommend continuing down
this path with Berkelium. It's been far too long since it's been
updated, and getting it compiled is only going to get more and more
difficult. And who knows how many security vulnerabilities are in
there...

The one saving grace, however, is that the API was designed to avoid
nasty C++ ABI incompatibilities (e.g., no std::string's should be used
anywhere). An alternative to what you're trying now would be to
compile against the older version of VS, then use the libraries with
the newer version in your project. This might be a good idea anyway --
getting the compile setup for Chrome of that era is a bit of a pain,
and has some weird ordering constraints. Doing it in a VM might be the
easiest approach. I assume you've seen
https://groups.google.com/forum/#!topic/berkelium/8aAmchLJldY , but
note the script at the end, which might help you get going with the
build.

-Ewen
-----
Ewen Cheslack-Postava
StraightUp | http://readstraightup.com
ewe...@readstraightup.com
(201) 286-7785
> --
> You received this message because you are subscribed to the Google Groups
> "Berkelium" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to berkelium+...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

Jarrett Chisholm

unread,
Oct 4, 2013, 2:34:13 PM10/4/13
to berk...@googlegroups.com
Hey Ewen!  Thanks for the reply!

Yeah, I feel like getting this going on the new VS is going to be a nightmare.  Unfortunately, I think I'm going to try something other than Berkelium (even though it is really awesome :)

I'm taking a look at Chromium Embedded Framework, and it looks quite promising.  Got the demo compiling and running on linux, and it's using off screen rendering with chromium 29.  I'm trying to get a simple demo setup that doesn't use all the GTK widgets and such, so that I can embed it directly into my engine.  We'll see how it goes.

Cheers

Jarrett


You received this message because you are subscribed to a topic in the Google Groups "Berkelium" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/berkelium/Ivfby-Lv5hQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to berkelium+...@googlegroups.com.

Ewen Cheslack-Postava

unread,
Oct 4, 2013, 2:47:46 PM10/4/13
to berk...@googlegroups.com
Jarrett,

Great, glad that you're finding something that works. If you wouldn't
mind reporting back as you get further along, I'd appreciate it. I'd
really like some information on this list providing a sort of review
for alternatives that are better maintained so that people know where
else they should be looking.

-Ewen
-----
Ewen Cheslack-Postava
StraightUp | http://readstraightup.com
ewe...@readstraightup.com
(201) 286-7785


Thomas Karolski

unread,
Oct 4, 2013, 2:59:38 PM10/4/13
to berk...@googlegroups.com, Ewen Cheslack-Postava
Chromium Embedded is definitely the way to go. I've used berkelium in the
past, and while it's great for its simplicity, chromium embedded is simply
better maintained. Off screen rendering also works much better actually.

Am 4. Oktober 2013 20:47:46 schrieb Ewen Cheslack-Postava
<ewe...@cs.stanford.edu>:
Gesendet mit AquaMail f�r Android
http://www.aqua-mail.com


Dennis Rieks

unread,
Oct 4, 2013, 3:10:58 PM10/4/13
to berk...@googlegroups.com, Ewen Cheslack-Postava
Hi,

even not really usabe yet but some things are already working is the new berkelium version here: http://github.com/berkelium/berkelium

If someone is interested here are some API examlpes:
http://berkelium.github.io/berkelium/ (Everything there is already working)

Please contact me if you think about helping me ;-)

Dennis

2013/10/4 Thomas Karolski <thomas....@gmail.com>

>> > For more options, visit https://groups.google.com/groups/opt_out.
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "Berkelium" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/berkelium/Ivfby-Lv5hQ/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to

>>
>> For more options, visit https://groups.google.com/groups/opt_out.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Berkelium" group.
> To unsubscribe from this group and stop receiving emails from it, send an

> For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "Berkelium" group.
To unsubscribe from this group and stop receiving emails from it, send an email to berkelium+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.


Gesendet mit AquaMail für Android
http://www.aqua-mail.com



--
You received this message because you are subscribed to the Google Groups "Berkelium" group.
To unsubscribe from this group and stop receiving emails from it, send an email to berkelium+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.



--
Dennis Rieks

agido GmbH
Hörder Hafenstraße 3a
44263 Dortmund

Fon: +49-231-399802-70
Fax: +49-231-399802-69
Skype: dennisrieks

Amtsgericht Dortmund: HRB 20179
USt-IdNr.: DE225365236
Geschäftsführer: Thomas Louis

Jarrett Chisholm

unread,
Oct 6, 2013, 12:26:27 PM10/6/13
to berk...@googlegroups.com
Hey Ewen!

I'm currently in the process of getting CEF3 compiling/linking on linux and windows - so far linux was a breeze, compiling on windows is a bit tougher, but I think mostly because I'm trying to use VS2013 RC.

As it turns out, someone in the CEF3 community was looking to do embedding in a graphics engine (Ogre), and posted a simple example:
http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11062

Video here: http://www.youtube.com/watch?v=wVZmdM_APis

So I think it's looking promising :)  Still have yet to get something working on my own, but this fellow who posted has also made his/her source code available, and it looks quite simple.
Reply all
Reply to author
Forward
0 new messages