awesomium icon indicating copy to clipboard operation
awesomium copied to clipboard

Cant compile on windows

Open lodle opened this issue 15 years ago • 4 comments

Hey,

I downloaded chromium build 26068 and compiled it fine. Had to fix a couple of build issues in Awesomium but it failed to link.

1>WebCore.obj : error LNK2019: unresolved external symbol "public: __thiscall ChildThread::ChildThread(void)" (??0ChildThread@@QAE@XZ) referenced in function "public: __thiscall Awesomium::WebCore::WebCore(enum Awesomium::LogLevel,bool,enum Awesomium::PixelFormat)" (??0WebCore@Awesomium@@QAE@W4LogLevel@1@_NW4PixelFormat@1@@Z) 1>WebCore.obj : error LNK2019: unresolved external symbol "public: __thiscall ChildProcess::ChildProcess(void)" (??0ChildProcess@@QAE@XZ) referenced in function "public: __thiscall Awesomium::WebCore::WebCore(enum Awesomium::LogLevel,bool,enum Awesomium::PixelFormat)" (??0WebCore@Awesomium@@QAE@W4LogLevel@1@_NW4PixelFormat@1@@Z) 1>glue.lib(webkit_glue.obj) : error LNK2019: unresolved external symbol "void __cdecl webkit_glue::AppendToLog(char const *,int,char const *)" (?AppendToLog@webkit_glue@@YAXPBDH0@Z) referenced in function "void __cdecl webkit_glue::DumpLeakedObject(char const *,int,char const *,int)" (?DumpLeakedObject@webkit_glue@@YAXPBDH0H@Z) 1>glue.lib(media_resource_loader_bridge_factory.obj) : error LNK2019: unresolved external symbol "public: static class webkit_glue::ResourceLoaderBridge * __cdecl webkit_glue::ResourceLoaderBridge::Create(class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class GURL const &,class GURL const &,class GURL const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,int,int,enum ResourceType::Type,int,int)" (?Create@ResourceLoaderBridge@webkit_glue@@SAPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABVGURL@@11000HHW4Type@ResourceType@@HH@Z) referenced in function "public: virtual class webkit_glue::ResourceLoaderBridge * __thiscall webkit_glue::MediaResourceLoaderBridgeFactory::CreateBridge(class GURL const &,int,__int64,__int64)" (?CreateBridge@MediaResourceLoaderBridgeFactory@webkit_glue@@UAEPAVResourceLoaderBridge@2@ABVGURL@@H_J1@Z) 1>glue.lib(weburlloader_impl.obj) : error LNK2001: unresolved external symbol "public: static class webkit_glue::ResourceLoaderBridge * __cdecl webkit_glue::ResourceLoaderBridge::Create(class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class GURL const &,class GURL const &,class GURL const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,class std::basic_string<char,struct std::char_traits,class std::allocator > const &,int,int,enum ResourceType::Type,int,int)" (?Create@ResourceLoaderBridge@webkit_glue@@SAPAV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABVGURL@@11000HHW4Type@ResourceType@@HH@Z) 1>glue.lib(webkitclient_impl.obj) : error LNK2019: unresolved external symbol "void __cdecl webkit_glue::GetPlugins(bool,class std::vector<struct WebPluginInfo,class std::allocator<struct WebPluginInfo> > *)" (?GetPlugins@webkit_glue@@YAX_NPAV?$vector@UWebPluginInfo@@V?$allocator@UWebPluginInfo@@@std@@@std@@@Z) referenced in function "public: virtual void __thiscall webkit_glue::WebKitClientImpl::getPluginList(bool,class WebKit::WebPluginListBuilder *)" (?getPluginList@WebKitClientImpl@webkit_glue@@UAEX_NPAVWebPluginListBuilder@WebKit@@@Z) 1>glue.lib(webkitclient_impl.obj) : error LNK2019: unresolved external symbol "class base::StringPiece __cdecl webkit_glue::GetDataResource(int)" (?GetDataResource@webkit_glue@@YA?AVStringPiece@base@@H@Z) referenced in function "public: virtual class WebKit::WebData __thiscall webkit_glue::WebKitClientImpl::loadResource(char const *)" (?loadResource@WebKitClientImpl@webkit_glue@@UAE?AVWebData@WebKit@@PBD@Z) 1>glue.lib(debugger_agent_impl.obj) : error LNK2001: unresolved external symbol "class base::StringPiece __cdecl webkit_glue::GetDataResource(int)" (?GetDataResource@webkit_glue@@YA?AVStringPiece@base@@H@Z) 1>glue.lib(webkitclient_impl.obj) : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl webkit_glue::GetUIResourceProtocol(void)" (?GetUIResourceProtocol@webkit_glue@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "public: virtual class WebCore::String __thiscall webkit_glue::WebKitClientImpl::uiResourceProtocol(void)" (?uiResourceProtocol@WebKitClientImpl@webkit_glue@@UAE?AVString@WebCore@@XZ) 1>glue.lib(plugin_list_win.obj) : error LNK2019: unresolved external symbol "bool __cdecl webkit_glue::GetApplicationDirectory(class FilePath *)" (?GetApplicationDirectory@webkit_glue@@YA_NPAVFilePath@@@Z) referenced in function "void __cdecl anonymous namespace'::GetAppDirectory(class std::set<class FilePath,struct std::less<class FilePath>,class std::allocator<class FilePath> > *)" (?GetAppDirectory@?A0x72dcdb65@@YAXPAV?$set@VFilePath@@U?$less@VFilePath@@@std@@V?$allocator@VFilePath@@@3@@std@@@Z) 1>glue.lib(plugin_list_win.obj) : error LNK2019: unresolved external symbol "bool __cdecl webkit_glue::GetExeDirectory(class FilePath *)" (?GetExeDirectory@webkit_glue@@YA_NPAVFilePath@@@Z) referenced in function "void __cdeclanonymous namespace'::GetExeDirectory(class std::set<class FilePath,struct std::less<class FilePath>,class std::allocator<class FilePath> > *)" (?GetExeDirectory@?A0x72dcdb65@@YAXPAV?$set@VFilePath@@U?$less@VFilePath@@@std@@V?$allocator@VFilePath@@@3@@std@@@Z) 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _av_malloc referenced in function "protected: virtual bool __thiscall media::FFmpegAudioDecoder::OnInitialize(class media::DemuxerStream *)" (?OnInitialize@FFmpegAudioDecoder@media@@MAE_NPAVDemuxerStream@2@@Z) 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_open referenced in function "protected: virtual bool __thiscall media::FFmpegAudioDecoder::OnInitialize(class media::DemuxerStream *)" (?OnInitialize@FFmpegAudioDecoder@media@@MAE_NPAVDemuxerStream@2@@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2001: unresolved external symbol _avcodec_open 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_find_decoder referenced in function "protected: virtual bool __thiscall media::FFmpegAudioDecoder::OnInitialize(class media::DemuxerStream *)" (?OnInitialize@FFmpegAudioDecoder@media@@MAE_NPAVDemuxerStream@2@@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2001: unresolved external symbol _avcodec_find_decoder 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _av_get_bits_per_sample_format referenced in function "protected: virtual bool __thiscall media::FFmpegAudioDecoder::OnInitialize(class media::DemuxerStream *)" (?OnInitialize@FFmpegAudioDecoder@media@@MAE_NPAVDemuxerStream@2@@Z) 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_flush_buffers referenced in function "protected: virtual void __thiscall media::FFmpegAudioDecoder::OnSeek(class base::TimeDelta)" (?OnSeek@FFmpegAudioDecoder@media@@MAEXVTimeDelta@base@@@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2001: unresolved external symbol _avcodec_flush_buffers 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_decode_audio3 referenced in function "protected: virtual void __thiscall media::FFmpegAudioDecoder::OnDecode(class media::Buffer *)" (?OnDecode@FFmpegAudioDecoder@media@@MAEXPAVBuffer@2@@Z) 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _av_init_packet referenced in function "protected: virtual void __thiscall media::FFmpegAudioDecoder::OnDecode(class media::Buffer *)" (?OnDecode@FFmpegAudioDecoder@media@@MAEXPAVBuffer@2@@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2001: unresolved external symbol _av_init_packet 1>media.lib(ffmpeg_audio_decoder.obj) : error LNK2019: unresolved external symbol _av_free referenced in function "public: void __thiscall media::ScopedPtrAVFree::operator()(void *)const " (??RScopedPtrAVFree@media@@QBEXPAX@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2001: unresolved external symbol _av_free 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_free_packet referenced in function "public: virtual __thiscall media::AVPacketBuffer::~AVPacketBuffer(void)" (??1AVPacketBuffer@media@@UAE@XZ) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_rescale_q referenced in function "private: class base::TimeDelta __thiscall media::FFmpegDemuxerStream::ConvertTimestamp(__int64)" (?ConvertTimestamp@FFmpegDemuxerStream@media@@AAE?AVTimeDelta@base@@_J@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2001: unresolved external symbol _av_rescale_q 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_close_input_file referenced in function "private: virtual __thiscall media::FFmpegDemuxer::~FFmpegDemuxer(void)" (??1FFmpegDemuxer@media@@EAE@XZ) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _avcodec_close referenced in function "private: virtual __thiscall media::FFmpegDemuxer::~FFmpegDemuxer(void)" (??1FFmpegDemuxer@media@@EAE@XZ) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_find_stream_info referenced in function "private: void __thiscall media::FFmpegDemuxer::InitializeTask(class media::DataSource *,class CallbackRunner<struct Tuple0> *)" (?InitializeTask@FFmpegDemuxer@media@@AAEXPAVDataSource@2@PAV?$CallbackRunner@UTuple0@@@@@Z) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_open_input_file referenced in function "private: void __thiscall media::FFmpegDemuxer::InitializeTask(class media::DataSource *,class CallbackRunner<struct Tuple0> *)" (?InitializeTask@FFmpegDemuxer@media@@AAEXPAVDataSource@2@PAV?$CallbackRunner@UTuple0@@@@@Z) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_seek_frame referenced in function "private: void __thiscall media::FFmpegDemuxer::SeekTask(class base::TimeDelta,class CallbackRunner<struct Tuple0> *)" (?SeekTask@FFmpegDemuxer@media@@AAEXVTimeDelta@base@@PAV?$CallbackRunner@UTuple0@@@@@Z) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_dup_packet referenced in function "private: void __thiscall media::FFmpegDemuxer::DemuxTask(void)" (?DemuxTask@FFmpegDemuxer@media@@AAEXXZ) 1>media.lib(ffmpeg_demuxer.obj) : error LNK2019: unresolved external symbol _av_read_frame referenced in function "private: void __thiscall media::FFmpegDemuxer::DemuxTask(void)" (?DemuxTask@FFmpegDemuxer@media@@AAEXXZ) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_thread_init referenced in function "protected: virtual bool __thiscall media::FFmpegVideoDecoder::OnInitialize(class media::DemuxerStream *)" (?OnInitialize@FFmpegVideoDecoder@media@@MAE_NPAVDemuxerStream@2@@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_alloc_frame referenced in function "protected: virtual void __thiscall media::FFmpegVideoDecoder::OnDecode(class media::Buffer *)" (?OnDecode@FFmpegVideoDecoder@media@@MAEXPAVBuffer@2@@Z) 1>media.lib(ffmpeg_video_decoder.obj) : error LNK2019: unresolved external symbol _avcodec_decode_video2 referenced in function "private: virtual bool __thiscall media::FFmpegVideoDecoder::DecodeFrame(class media::Buffer const &,struct AVCodecContext *,struct AVFrame *)" (?DecodeFrame@FFmpegVideoDecoder@media@@EAE_NABVBuffer@2@PAUAVCodecContext@@PAUAVFrame@@@Z) 1>media.lib(ffmpeg_glue.obj) : error LNK2019: unresolved external symbol _av_register_all referenced in function "private: __thiscall media::FFmpegGlue::FFmpegGlue(void)" (??0FFmpegGlue@media@@AAE@XZ) 1>media.lib(ffmpeg_glue.obj) : error LNK2019: unresolved external symbol _av_register_protocol referenced in function "private: __thiscall media::FFmpegGlue::FFmpegGlue(void)" (??0FFmpegGlue@media@@AAE@XZ) %0

lodle avatar Sep 20 '09 05:09 lodle

Hi lodle, Anything after 25000 is broken in awesomium. I don't know if this branch will be fixed. I have been spending time working on a rewrite that uses the IPC layer of Chrome, so I don't know if I'll get around to fixing the latest versions any time soon.

I recommend using one of the stable branches: The "master" branch with chromium rev 24066. The "stable32bit" branch with chromium rev 23522.

The last know working windows version is: 2ab93fe38d1474e219372ce21f4cc2f9d1c4255b (rev 19929).

I realize this is really old, and I suspect getting something newer working is just a matter of adding some new libraries to the linker settings. (for example v8_snapshot.lib instead of v8.lib)

Neither of these have been recently tested on Windows, so you might need to struggle a bit with adding/removing libraries to make it link.

For example, you night need to add chromium's media and ffmpeg libraries to fix the ffmpeg errors.

sirikata avatar Sep 20 '09 22:09 sirikata

I added media but couldnt find ffmpeg and theres so many libraries its not funny ill download one of those builds.

Thanks

lodle avatar Sep 20 '09 23:09 lodle

Hi sirikata, I am working on Vista SP1 under VS2008 SP1 I failed to compile Awesomium 2ab93fe and Chromium 19929 due to many errors I have compiled Awesomium 296621ea and Chromium 19929 after finding missing files, etc. Unfortunately when I run the demo app I get a blank white screen but no obvious errors When I run the unit tests Test 1 fails. Any ideas appreciated! What I am actually hoping to do is load the Google Earth API plugin into Awesomium. This works for Chromium, but if Awesomium does not support the Chromium plug in system then things ma y be more difficult. Any advice in this area greatly appreciated.

Thanks, Eoin.

eoinomeara avatar Oct 21 '09 16:10 eoinomeara

If you intend to use more recent Chromium features, you may want to check out Berkelium, which is my rewrite of Awesomium on top of the IPC layer: http://github.com/danielrh/berkelium/

It's still in progress, but most features are working at this point. Unfortunately we don't have a full plugin implementation yet, and transparency is unsupported in Windows because the Win32 GDI functions give arbitrary opacity values. (Awesomium did a black/white trick so it renders the page twice each frame. This is much harder to do with the new design)

pathorn avatar Oct 28 '09 20:10 pathorn