Undefined symbol: 'class CTextListBoxModel * CEikColumnListBox::Model(void) const

本文介绍了解决创建列表控件时遇到的编译错误问题。通过在.mmp文件中追加相应的library,成功解决了Undefined symbol错误,并分享了使用CDesC16Array时的类似解决经验。

 在创建列表控件时,编译出现错误:

Undefined symbol: 'class CTextListBoxModel * CEikColumnListBox::Model(void) const

 

开始是以为头文件找不到,就在SDK里查对应的头文件,问题依然存在。

正确解决方法:在.mmp文件中追加对应的library。

 

然后在使用CDesC16Array时也遇到此问题,于是在.mmp中追加了对应的library,问题顺利解决。

下面函数添加到chromium源码中用于获取cookie,函数: void FindSiteCookies(Profile* profile, const std::string& domain) { // 获取 CookieManager network::mojom::CookieManager* cookie_manager = profile->GetDefaultStoragePartition()->GetCookieManagerForBrowserProcess(); // 构建查询选项 net::CookieOptions options; options.set_include_httponly(); // 包含 HttpOnly Cookie options.set_same_site_cookie_context(net::CookieOptions::SameSiteCookieContext::MakeInclusive()); // 异步获取 Cookie 列表 cookie_manager->GetCookieList(GURL("https://" + domain), options, net::CookiePartitionKeyCollection(), base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { for (const auto& cookie : cookies) { LOG(INFO) << "Found cookie: " << cookie.cookie.Name() << "=" << cookie.cookie.Value() << " for domain: " << cookie.cookie.Domain(); } })); } 报错: ../../chrome/browser/ui/toolbar/app_menu_model.cc(1775,90): error: member access into incomplete type 'StoragePartition' 1775 | network::mojom::CookieManager* cookie_manager = profile->GetDefaultStoragePartition()->GetCookieManagerForBrowserProcess(); | ^ ../..\content/public/browser/browser_context.h(106,7): note: forward declaration of 'content::StoragePartition' 106 | class StoragePartition; | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1783,19): error: member access into incomplete type 'network::mojom::CookieManager' 1783 | cookie_manager->GetCookieList(GURL("https://" + domain), options, net::CookiePartitionKeyCollection(), | ^ ../..\components/signin/public/base/signin_client.h(40,7): note: forward declaration of 'network::mojom::CookieManager' 40 | class CookieManager; | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1783,76): error: no member named 'CookiePartitionKeyCollection' in namespace 'net' 1783 | cookie_manager->GetCookieList(GURL("https://" + domain), options, net::CookiePartitionKeyCollection(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,37): error: variable '__begin2' cannot be implicitly captured in a lambda with no capture-default specified 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,124): note: while substituting into a lambda expression here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,37): note: '__begin2' declared here 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: lambda expression begins here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture '__begin2' by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | __begin2 ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture '__begin2' by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | &__begin2 ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | = ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | & ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,37): error: variable '__end2' cannot be implicitly captured in a lambda with no capture-default specified 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,37): note: '__end2' declared here ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: lambda expression begins here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture '__end2' by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | __end2 ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture '__end2' by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | &__end2 ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | = ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | & ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,37): error: variable '__begin2' cannot be implicitly captured in a lambda with no capture-default specified 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,37): note: '__begin2' declared here ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: lambda expression begins here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture '__begin2' by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | __begin2 ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture '__begin2' by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | &__begin2 ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | = ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | & ../../chrome/browser/ui/toolbar/app_menu_model.cc(1786,50): error: variable 'cookie' cannot be implicitly captured in a lambda with no capture-default specified 1786 | LOG(INFO) << "Found cookie: " << cookie.cookie.Name() | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,30): note: 'cookie' declared here 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: lambda expression begins here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture 'cookie' by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | cookie ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture 'cookie' by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | &cookie ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | = ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | & ../../chrome/browser/ui/toolbar/app_menu_model.cc(1787,31): error: variable 'cookie' cannot be implicitly captured in a lambda with no capture-default specified 1787 | << "=" << cookie.cookie.Value() | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,30): note: 'cookie' declared here 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: lambda expression begins here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture 'cookie' by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | cookie ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture 'cookie' by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | &cookie ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | = ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | & ../../chrome/browser/ui/toolbar/app_menu_model.cc(1788,43): error: variable 'cookie' cannot be implicitly captured in a lambda with no capture-default specified 1788 | << " for domain: " << cookie.cookie.Domain(); | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1785,30): note: 'cookie' declared here 1785 | for (const auto& cookie : cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: lambda expression begins here 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture 'cookie' by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | cookie ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: capture 'cookie' by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | &cookie ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by value 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | = ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,25): note: default capture by reference 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ | & ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): error: no viable conversion from '(lambda at ../../chrome/browser/ui/toolbar/app_menu_model.cc:1784:24)' to '(lambda at ../../chrome/browser/ui/toolbar/app_menu_model.cc:1784:24)' 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1785 | for (const auto& cookie : cookies) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1786 | LOG(INFO) << "Found cookie: " << cookie.cookie.Name() | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1787 | << "=" << cookie.cookie.Value() | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1788 | << " for domain: " << cookie.cookie.Domain(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1789 | } | ~ 1790 | })); | ~ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: candidate constructor (the implicit copy constructor) not viable: no known conversion from '(lambda at ../../chrome/browser/ui/toolbar/app_menu_model.cc:1784:24)' to 'const (lambda at ../../chrome/browser/ui/toolbar/app_menu_model.cc:1784:24) &' for 1st argument ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: candidate constructor (the implicit move constructor) not viable: no known conversion from '(lambda at ../../chrome/browser/ui/toolbar/app_menu_model.cc:1784:24)' to '(lambda at ../../chrome/browser/ui/toolbar/app_menu_model.cc:1784:24) &&' for 1st argument 1784 | base::BindOnce([](const net::CookieAccessResultList& cookies, const net::CookieAccessResultList& excluded_cookies) { | ^ ../../chrome/browser/ui/toolbar/app_menu_model.cc(1784,24): note: candidate function ../..\base/functional/bind.h(58,32): note: passing argument to parameter 'functor' here 58 | inline auto BindOnce(Functor&& functor, Args&&... args) { | ^ 10 error
最新发布
08-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值