| Summary: | Kexi doesn't link on windows | ||
|---|---|---|---|
| Product: | [Applications] KEXI | Reporter: | Halla Rempt <halla> |
| Component: | General | Assignee: | Jarosław Staniek <staniek> |
| Status: | CLOSED WAITINGFORINFO | ||
| Severity: | normal | CC: | stuartmd |
| Priority: | NOR | ||
| Version First Reported In: | 2.4 beta3 (Calligra 2.4 beta3) | ||
| Target Milestone: | --- | ||
| Platform: | Unlisted Binaries | ||
| OS: | Microsoft Windows | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Exports removed from templates in kexiutils
Commenting out reference to undefined functions. Use of multi-compiler warnings Probably proper fix for KexiSearchLineEdit on Windows Patch for Field.h Improved patch for more LNK issues Improved patch for more LNK issues 2 Improved patch for more LNK issues 3 |
||
|
Description
Halla Rempt
2011-11-22 10:18:34 UTC
Linker error. I will analyze today. BTW, What's 3.0 version? operator error -- I was trying to select "git master" :-) Assuming 2.4 beta3 at least. I'm getting further now, but not to the finish: moc: Cannot create C:/kderoot/calligra/build/calligra/kexi/plugins/tables/kexitabledesignerview_p.moc Generating kexitablepart.moc automoc4: process for C:/kderoot/calligra/build/calligra/kexi/plugins/tables/kexitabledesignerview_p.moc failed: moc: Cannot create C:/kderoot/calligra/build/calligra/kexi/plugins/tables/kexitabledesignerview_p.moc Created attachment 65957 [details]
Exports removed from templates in kexiutils
Please test the patch... Created attachment 65962 [details]
Commenting out reference to undefined functions. Use of multi-compiler warnings
moveCursor functions inside KexiSearchLineEdit.cpp have been commented out - could do with being removed outright, or kept and commented for future TODO.
Warnings now check for GCC, and avoid use of undefined #warning on Windows.
(kexidataawarereview.coo)
Patch corrects issue of unresolved symbols.
Further issues which occur and which I resolve (partially) in the second patch:
kexi/main/KexiSearchLineEdit
commenting out moveCursor references - this method is undefined. As this is hidden inside a conditional block, valid if Q_WS_WIN is defined, I have commented these out to allow the compile to proceed, with a mind to enquire alternatives with the community. (this stands to become a possible bug in future if not addressed - but it is worth noting that this behaviour is peculiar to Windows)
kexi/widget/dataviewcommon/kexidataawareview.cpp
Added warnings for non-GCC compilers.
(possible formatting issue?)
------
With these changes in place, the build fails later with the WebBrowserWidget
WebBrowserWidget.cpp
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(135) : warning C
4520: 'WebBrowserWidget' : multiple default constructors specified
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(36) : warning
C4273: 'WebBrowserWidget::WebBrowserWidget' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(61) : se
e previous definition of '{ctor}'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(79) : warning
C4273: 'WebBrowserWidget::WebBrowserWidget' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(59) : se
e previous definition of '{ctor}'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(83) : warning
C4273: 'WebBrowserWidget::~WebBrowserWidget' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(60) : se
e previous definition of '{dtor}'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(87) : warning
C4273: 'WebBrowserWidget::setDataSourcePartClass' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(112) : s
ee previous definition of 'setDataSourcePartClass'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(94) : warning
C4273: 'WebBrowserWidget::setDataSource' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(111) : s
ee previous definition of 'setDataSource'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(100) : warning
C4273: 'WebBrowserWidget::hide_bar' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(116) : s
ee previous definition of 'hide_bar'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(105) : warning
C4273: 'WebBrowserWidget::setUrl' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(113) : s
ee previous definition of 'setUrl'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(110) : warning
C4273: 'WebBrowserWidget::setUrl' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(120) : s
ee previous definition of 'setUrl'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(115) : warning
C4273: 'WebBrowserWidget::updateToolBar' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(106) : s
ee previous definition of 'updateToolBar'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(126) : warning
C4273: 'WebBrowserWidget::setZoomFactor' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(114) : s
ee previous definition of 'setZoomFactor'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(131) : warning
C4273: 'WebBrowserWidget::setTextScale' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(115) : s
ee previous definition of 'setTextScale'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(136) : warning
C4273: 'WebBrowserWidget::cursorAtStart' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(103) : s
ee previous definition of 'cursorAtStart'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(141) : warning
C4273: 'WebBrowserWidget::cursorAtEnd' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(104) : s
ee previous definition of 'cursorAtEnd'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(147) : warning
C4273: 'WebBrowserWidget::value' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(100) : s
ee previous definition of 'value'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(157) : warning
C4273: 'WebBrowserWidget::valueIsNull' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(101) : s
ee previous definition of 'valueIsNull'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(162) : warning
C4273: 'WebBrowserWidget::clear' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(105) : s
ee previous definition of 'clear'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(167) : warning
C4273: 'WebBrowserWidget::setInvalidState' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(108) : s
ee previous definition of 'setInvalidState'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(177) : warning
C4273: 'WebBrowserWidget::setValueInternal' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(119) : s
ee previous definition of 'setValueInternal'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(206) : warning
C4273: 'WebBrowserWidget::valueIsEmpty' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(102) : s
ee previous definition of 'valueIsEmpty'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(212) : warning
C4273: 'WebBrowserWidget::isReadOnly' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(106) : s
ee previous definition of 'isReadOnly'
M:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.cpp(218) : warning
C4273: 'WebBrowserWidget::setReadOnly' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\src\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.h(107) : s
ee previous definition of 'setReadOnly'
M:\kodevenv\calligra2windows\kde4\build\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.moc(65) : warnin
g C4273: 'staticMetaObject' : inconsistent dll linkage
m:\kodevenv\calligra2windows\kde4\build\calligra\kexi\plugins\forms\widgets\webbrowser\../../../../../../../src/
calligra/kexi/plugins/forms/widgets/webbrowser/WebBrowserWidget.h(46) : see previous definition of 'public: static QMeta
Object const WebBrowserWidget::staticMetaObject'
M:\kodevenv\calligra2windows\kde4\build\calligra\kexi\plugins\forms\widgets\webbrowser\WebBrowserWidget.moc(65) : error
C2491: 'WebBrowserWidget::staticMetaObject' : definition of dllimport static data member not allowed
Regarding Stuart's patch 65962: - #warning fix for kexidataawareview.cpp is pushed to master now - attaching KexiSearchLineEdit.patch for KexiSearchLineEdit.cpp - please test this one Created attachment 65967 [details]
Probably proper fix for KexiSearchLineEdit on Windows
Git commit 40d230391d9cf12e3bf6d0e2be1d619526698dfb by Jaroslaw Staniek. Committed on 23/11/2011 at 09:22. Pushed by staniek into branch 'master'. Web widget: remove duplicated default ctor CCBUG:287236 CCMAIL:shreya.pandit25@gmail.com M +0 -4 kexi/plugins/forms/widgets/webbrowser/WebBrowserWidget.cpp M +1 -2 kexi/plugins/forms/widgets/webbrowser/WebBrowserWidget.h http://commits.kde.org/calligra/40d230391d9cf12e3bf6d0e2be1d619526698dfb Git commit 42ec4104d6d42a09f2e0665571f2a0b1655b0255 by Jaroslaw Staniek. Committed on 23/11/2011 at 09:27. Pushed by staniek into branch 'master'. Web widget: do not export C++ symbols from the plugin (fixed link error on Windows) CCBUG:287236 CCMAIL:shreya.pandit25@gmail.com M +3 -3 kexi/plugins/forms/widgets/webbrowser/WebBrowserWidget.h http://commits.kde.org/calligra/42ec4104d6d42a09f2e0665571f2a0b1655b0255 Please 'git pull' and try again... For reference, http://techbase.kde.org/Projects/KDE_on_Windows/Porting_Guidelines#What_not_to_export.3F Regarding errors http://pastebin.kde.org/149840/ I think core of the problem is explained at http://support.microsoft.com/kb/168958. And http://stackoverflow.com/questions/666628/importing-explicitly-instantiated-template-class-from-dll. Please apply the patch for Field.h and check if some warnings like this disappear: error LNK2001: unresolved external symbol "__declspec(dllimport) public: class KexiDB::Field * __thiscall QList<class KexiDB::Field *>::value(int)const [..] Created attachment 65973 [details]
Patch for Field.h
Created attachment 65974 [details]
Improved patch for more LNK issues
Created attachment 65976 [details]
Improved patch for more LNK issues 2
Created attachment 65978 [details]
Improved patch for more LNK issues 3
Git commit 7a4c1909271b0e746884f97ef2c93a65395ac384 by Jaroslaw Staniek. Committed on 24/11/2011 at 00:48. Pushed by staniek into branch 'master'. Main Window: fix build of search line edit for msvc CCBUG:287236 M +8 -2 kexi/main/KexiSearchLineEdit.cpp http://commits.kde.org/calligra/7a4c1909271b0e746884f97ef2c93a65395ac384 Does it link now? |