- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试为 wxWidgets 3.0 构建 wxHaskell。我使用了来自 https://github.com/wxHaskell/wxHaskell 的最新 git 版本的 wxHaskell .
我尝试按照 wxHaskell-master.zip 中的 install.txt
操作,到目前为止我所做的是:
cd wxdirect
cabal install
cd ../wxc
cabal install
wxc
无法编译,因为它的 Setup.hs 需要 wxWidgets 2.9。我换了
let wxRequiredVersion = "2.9"
与
let wxRequiredVersion = "3.0"
然后做了:
cabal install --extra-lib-dirs=/usr/local/lib
所有编译都正常,但最后出现了一些链接错误。最难解决的问题如下:
dist\build\src\cpp\eljlog.o:eljlog.cpp:(.rdata$_ZTV6ELJLog[vtable for ELJLog]+0x20): undefined reference to `wxLog::DoLog(unsigned long, char const*, long)'
对应的源码在wxc/src/cpp/eljlog.cpp
:
class ELJLog : public wxLog
{
private:
TLogFunc func;
void* EiffelObject;
protected:
virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t)
{
wxString s(szString);
func (EiffelObject, (int)level, (void*)&s , (int)t);
}
....
我不知道是什么原因导致了这个错误以及如何修复它。我对这个 vtable
问题做了一些搜索,有人认为这是由于在子类中声明了一个虚函数而没有定义它造成的。其他人建议这是目标文件在 g++ 命令行上给出的顺序。但这里似乎都不是这种情况。我尝试删除函数 ELJLog::DoLog
函数或注释掉 virtual 关键字。奇怪的是,即使没有出现 DoLog,总是有一个链接错误/错误说明一些关于 ELJLog 的 vtable,并引用 wxLog::DoLog。
此外,作为旁注,wxLog::DoLog
似乎在 wxWidgets 3.0 文档中丢失了。我不确定此功能是否已弃用。但是,它仍然以我无法理解的方式导致遗留派生类出错。
知道这里发生了什么吗?
--- 编辑2 ---
如果我注释掉有问题的函数
virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) ...
我得到了如下不同的链接错误:
dist\build\src\cpp\eljlog.o:eljlog.cpp:(.rdata$_ZTV6ELJLog[vtable for ELJLog]+0x
20): undefined reference to `wxLog::DoLog(unsigned long, char const*, long)'
dist\build\src\cpp\eljlog.o:eljlog.cpp:(.rdata$_ZTV6ELJLog[vtable for ELJLog]+0x
24): undefined reference to `wxLog::DoLog(unsigned long, wchar_t const*, long)'
collect2: ld returned 1 exit status
--- 编辑 ---
我在 mingw.org 的 mingw32 下从事这项工作。我从源码构建了wxWidgets 3.0.0稳定版,我做的stpes如下:
per http://mingw.5.n7.nabble.com/win32api-version-4-td32288.html :
edit line 2217 of /c/mingw/{,mingw32/}include/commctrl.h to read
#define TV_DISPINFO NMTVDISPINFO
instead of
#define TV_DISPINFO __AW(NMTVDISPINFO)
The above was needed to fix a MinGW32 4.8.1-4 issue. Then,
./configure --enable-stl --disable-shared
make
make install
./configure --enable-stl
make
make install
mv /usr/local/lib/wx*.dll /c/mingw/bin/
最佳答案
这似乎是一个定义
virtual void DoLog(wxLogLevel level, const char *szString, time_t t)
wxLog
的子类
ELJLog
中缺少
。添加以下界面不同的 DoLog
拷贝仅解决了问题:
virtual void DoLog(wxLogLevel level, const char *szString, time_t t)
{
wxString s(szString);
func (EiffelObject, (int)level, (void*)&s , (int)t);
}
关于c++ - 对 wxLog::DoLog 的 undefined reference 错误构建 wxHaskell 针对 wxWidget 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22187103/
我只是有一个更琐碎的问题。 为什么undefined == undefined 返回true,而undefined >= undefined 为false? undefined 等于 undefine
用PHP 7.2编写套接字服务器。根据Firefox 60中的“网络”选项卡,服务器的一些HTTP响应的第一行随机变为undefined undefined undefined。因此,我尝试记录套接字
在 JavaScript 中这是真的: undefined == undefined 但这是错误的: undefined <= undefined 起初我以为<=运算符包含第一个,但我猜它试图将其转换
在回答这个问题 (Difference between [Object, Object] and Array(2)) 时,我在 JavaScript 数组中遇到了一些我以前不知道的东西(具有讽刺意味的
来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/of , Note: thi
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
当我添加 到我的 PrimeFaces Mobile 页面,然后我在服务器日志中收到以下警告 WARNING: JSF1064: Unable to find or serve resource, u
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我是一名优秀的程序员,十分优秀!