hlwhl / webview_cef

WebView for Flutter Desktop Apps using CEF(Chromium Embedded Framework) [Work in Progress]
Apache License 2.0
158 stars 44 forks source link

macOS14.3 & Xcode15.2 run example report Undefined symbols #106

Closed luoguilin closed 5 months ago

luoguilin commented 5 months ago

ld: Undefined symbols: CefShutdown(), referenced from: webview_cef::HandleMethodCall(std::1::basic_string<char, std::__1::char_traits, std::1::allocator>, webview_value, std::__1::function<void (int, webview_value)>) in cef_bridge.o CefURIEncode(CefStringBase const&, bool), referenced from: (anonymous namespace)::GetDataURI(std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const&, std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const&) in cef_bridge.o CefInitialize(CefMainArgs const&, CefStructBase const&, scoped_refptr, void), referenced from: webview_cef::startCEF() in cef_bridge.o CefCurrentlyOn(cef_thread_id_t), referenced from: WebviewApp::OnContextInitialized() in cef_bridge.o WebviewHandler::OnAfterCreated(scoped_refptr) in cef_bridge.o WebviewHandler::DoClose(scoped_refptr) in cef_bridge.o WebviewHandler::OnBeforeClose(scoped_refptr) in cef_bridge.o WebviewHandler::OnLoadError(scoped_refptr, scoped_refptr, cef_errorcode_t, CefStringBase const&, CefStringBase const&) in cef_bridge.o WebviewHandler::CloseAllBrowsers(bool) in cef_bridge.o WebviewHandler::GetViewRect(scoped_refptr, CefRect&) in cef_bridge.o ... CefBase64Encode(void const, unsigned long), referenced from: (anonymous namespace)::GetDataURI(std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const&, std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const&) in cef_bridge.o CefExecuteProcess(CefMainArgs const&, scoped_refptr, void), referenced from: webview_cef::initCEFProcesses() in cef_bridge.o CefQuitMessageLoop(), referenced from: WebviewHandler::OnBeforeClose(scoped_refptr) in cef_bridge.o CefDoMessageLoopWork(), referenced from: webview_cef::doMessageLoopWork() in cef_bridge.o CefRegisterExtension(CefStringBase const&, CefStringBase const&, scoped_refptr), referenced from: WebviewApp::OnWebKitInitialized() in cef_bridge.o CefV8Value::CreateBool(bool), referenced from: CefJSBridge::ExecuteJSCallbackFunc(int, bool, CefStringBase const&) in cef_bridge.o CefV8Value::CreateString(CefStringBase const&), referenced from: CefJSBridge::ExecuteJSCallbackFunc(int, bool, CefStringBase const&) in cef_bridge.o CefV8Value::CreateInt(int), referenced from: CefJSHandler::Execute(CefStringBase const&, scoped_refptr, std::1::vector<scoped_refptr, std::1::allocator<scoped_refptr>> const&, scoped_refptr&, CefStringBase&) in cef_bridge.o CefV8Context::GetCurrentContext(), referenced from: CefJSBridge::CallCppFunction(CefStringBase const&, CefStringBase const&, scoped_refptr, scoped_refptr) in cef_bridge.o CefJSBridge::StartRequest(int, CefStringBase const&, CefStringBase const&, CefStringBase const&) in cef_bridge.o CefJSBridge::EvaluateCallback(CefStringBase const&, CefStringBase const&) in cef_bridge.o CefBrowserHost::CreateBrowser(CefWindowInfo const&, scoped_refptr, CefStringBase const&, CefStructBase const&, scoped_refptr, scoped_refptr), referenced from: WebviewApp::OnContextInitialized() in cef_bridge.o CefCommandLine::GetGlobalCommandLine(), referenced from: WebviewHandler::IsChromeRuntimeEnabled() in cef_bridge.o CefCookieManager::GetGlobalManager(scoped_refptr), referenced from: WebviewHandler::setCookie(std::1::basic_string<char, std::1::char_traits, std::1::allocator> const&, std::1::basic_string<char, std::1::char_traits, std::1::allocator> const&, std::1::basic_string<char, std::1::char_traits, std::1::allocator> const&) in cef_bridge.o WebviewHandler::deleteCookie(std::__1::basic_string<char, std::1::char_traits, std::1::allocator> const&, std::1::basic_string<char, std::1::char_traits, std::__1::allocator> const&) in cef_bridge.o WebviewHandler::visitAllCookies(std::1::function<void (std::1::map<std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::map<std::__1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::less<std::__1::basic_string<char, std::1::char_traits, std::1::allocator>>, std::1::allocator<std::1::pair<std::1::basic_string<char, std::1::char_traits, std::1::allocator> const, std::1::basic_string<char, std::1::char_traits, std::1::allocator>>>>, std::1::less<std::1::basic_string<char, std::__1::char_traits, std::1::allocator>>, std::1::allocator<std::1::pair<std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const, std::1::map<std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::less<std::1::basic_string<char, std::__1::char_traits, std::1::allocator>>, std::1::allocator<std::1::pair<std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const, std::1::basic_string<char, std::__1::char_traits, std::1::allocator>>>>>>>)>) in cef_bridge.o WebviewHandler::visitUrlCookies(std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const&, bool const&, std::1::function<void (std::1::map<std::1::basic_string<char, std::__1::char_traits, std::1::allocator>, std::1::map<std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::less<std::1::basic_string<char, std::__1::char_traits, std::1::allocator>>, std::1::allocator<std::1::pair<std::1::basic_string<char, std::__1::char_traits, std::1::allocator> const, std::1::basic_string<char, std::__1::char_traits, std::1::allocator>>>>, std::1::less<std::1::basic_string<char, std::1::char_traits, std::1::allocator>>, std::1::allocator<std::1::pair<std::1::basic_string<char, std::1::char_traits, std::1::allocator> const, std::1::map<std::1::basic_string<char, std::__1::char_traits, std::1::allocator>, std::1::basic_string<char, std::__1::char_traits, std::1::allocator>, std::1::less<std::1::basic_string<char, std::1::char_traits, std::1::allocator>>, std::1::allocator<std::1::pair<std::1::basic_string<char, std::1::char_traits, std::1::allocator> const, std::1::basic_string<char, std::1::char_traits, std::__1::allocator>>>>>>>)>) in cef_bridge.o CefProcessMessage::Create(CefStringBase const&), referenced from: WebviewApp::OnFocusedNodeChanged(scoped_refptr, scoped_refptr, scoped_refptr) in cef_bridge.o WebviewHandler::sendJavaScriptChannelCallBack(bool, std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::basic_string<char, std::1::char_traits, std::1::allocator>, std::1::basic_string<char, std::__1::char_traits, std::__1::allocator>) in cef_bridge.o CefJSBridge::CallCppFunction(CefStringBase const&, CefStringBase const&, scoped_refptr, scoped_refptr) in cef_bridge.o CefJSBridge::StartRequest(int, CefStringBase const&, CefStringBase const&, CefStringBase const&) in cef_bridge.o CefJSBridge::EvaluateCallback(CefStringBase const&, CefStringBase const&) in cef_bridge.o CefScopedLibraryLoader::Load(bool), referenced from: CefScopedLibraryLoader::LoadInMain() in cef_bridge.o CefScopedLibraryLoader::CefScopedLibraryLoader(), referenced from: webview_cef::initCEFProcesses() in cef_bridge.o CefScopedLibraryLoader::~CefScopedLibraryLoader(), referenced from: webview_cef::initCEFProcesses() in cef_bridge.o webview_cef::initCEFProcesses() in cef_bridge.o cef::logging::LogMessage::LogMessage(char const, int, int), referenced from: WebviewApp::OnContextInitialized() in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o WebviewHandler::WebviewHandler() in cef_bridge.o ... cef::logging::LogMessage::~LogMessage(), referenced from: WebviewApp::OnContextInitialized() in cef_bridge.o WebviewApp::OnContextInitialized() in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o scoped_refptr::operator->() const in cef_bridge.o ... _cef_string_ascii_to_utf16, referenced from: CefStringTraitsUTF16::from_ascii(char const, unsigned long, _cef_string_utf16_t) in cef_bridge.o _cef_string_utf16_clear, referenced from: CefWindowInfoTraits::clear(_cef_window_info_t) in cef_bridge.o CefStringTraitsUTF16::clear(_cef_string_utf16_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o CefBrowserSettingsTraits::clear(_cef_browser_settings_t) in cef_bridge.o ... _cef_string_utf16_cmp, referenced from: CefStringTraitsUTF16::compare(_cef_string_utf16_t const, _cef_string_utf16_t const) in cef_bridge.o _cef_string_utf16_set, referenced from: CefStringTraitsUTF16::set(unsigned short const, unsigned long, _cef_string_utf16_t, int) in cef_bridge.o CefCookieTraits::set(_cef_cookie_t const, _cef_cookie_t, bool) in cef_bridge.o CefCookieTraits::set(_cef_cookie_t const, _cef_cookie_t, bool) in cef_bridge.o CefCookieTraits::set(_cef_cookie_t const, _cef_cookie_t, bool) in cef_bridge.o CefCookieTraits::set(_cef_cookie_t const, _cef_cookie_t, bool) in cef_bridge.o CefStringTraitsUTF16::from_string16(char16_t const, unsigned long, _cef_string_utf16_t) in cef_bridge.o _cef_string_utf16_to_utf8, referenced from: CefStringTraitsUTF16::to_string(_cef_string_utf16_t const) in cef_bridge.o _cef_string_utf8_clear, referenced from: CefStringTraitsUTF16::to_string(_cef_string_utf16_t const) in cef_bridge.o _cef_string_utf8_to_utf16, referenced from: CefStringTraitsUTF16::from_string(char const, unsigned long, _cef_string_utf16_t) in cef_bridge.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

SinyimZhi commented 5 months ago

have you unzip the prebuilt package at correct path? Read readme may helps you @luoguilin

luoguilin commented 5 months ago

have you unzip the prebuilt package at correct path? Read readme may helps you @luoguilin

I did put all files into macos/third/cef.

image
SinyimZhi commented 5 months ago

@luoguilin oh man, the correct macos folder is same directory with example folder. image

luoguilin commented 5 months ago

@luoguilin oh man, the correct macos folder is same directory with example folder. image

Thank you very much for your help, I successfully solved this problem