For the record, here is my status of using the SDK of a recent (post
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=5051209534c8a2034dcb0016d4a8fe29dcb2947b>
"Adapt SDK to usage of msvcrtd for Windows --enable-dbgutil") master
build (--enable-dbgutil even) on Windows:
I use the SDK on the Windows 7 machine I also do the LO build on (at
C:\lo\core), so that machine already had Visual Studio and a JDK installed.
As a prerequisite, install
<http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe/download>
and, in Command Prompt do:
> cd C:\MinGW
> mingw-get update
> mingw-get install msys-zip
For testing ure/source/uretest/Makefile, additionally do:
> mingw-get install msys-coreutils
> mingw-get install msys-sed
Then, in Command Prompt do:
> cd C:\lo\core\solver\wntmsci12\installation\opt\sdk
> setsdkenv_windows.bat
and do the first-time configuration as necessary. The results for me are:
******************************************************************
*
* SDK environment is prepared for Windows
*
* SDK = C:\lo\core\solver\wntmsci12\installation\opt\sdk
* Office = C:\lo\core\solver\wntmsci12\installation\opt
* URE = C:\lo\core\solver\wntmsci12\installation\opt\URE
* Make = C:\MinGW\bin
* Zip = C:\MinGW\msys\1.0\bin
* C++ Compiler = C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
* C# and VB.NET compilers = C:\Windows\Microsoft.NET\Framework\v2.0.50727
* Java = C:\Program Files\Java\jdk1.7.0_11
* Special Output directory = c:\libreoffice4.1.0.0.alpha0+_sdk
* Auto deployment = YES
*
******************************************************************
Then, to see things are working at least minimally, continue with
> cd examples\cpp\counter
> mingw32-make
> mingw32-make countermain.run
At least with my current build, the ure/source/uretest/Makefile test:
> cd C:\lo\core\ure\source\uretest
> mingw32-make
still fails the test-javanative with:
set URE_MORE_TYPES=file:///C:/lo/core/ure/source/uretest/out.sdk/types.rdb && set
URE_MORE_SERVICES=file:///C:/lo/core/ure/source/uretest/out.sdk/services.rdb && "C:\Program
Files\Java\jdk1.7.0_11/bin/java" -jar out.sdk/runner.jar \
file:///C:/lo/core/solver/wntmsci12/installation/opt/URE/java/
file:///C:/lo/core/ure/source/uretest/out.sdk/javanative.jar
warn:cppuhelper:2968:3492:cppuhelper/source/shlib.cxx:501: loading component library failed:
file:///C:/lo/core/ure/source/uretest/out.sdk/cpptest.uno.dll
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.star.lib.unoloader.UnoClassLoader.execute(UnoClassLoader.java:160)
at com.sun.star.lib.unoloader.UnoLoader.execute(UnoLoader.java:81)
at test.java.runner.Runner.main(Runner.java:28)
Caused by: com.sun.star.uno.DeploymentException: component context fails to supply service
test.types.CppTest of type test.types.XTest: com.sun.star.loader.CannotActivateFactoryException:
loading component library failed: file:///C:/lo/core/ure/source/uretest/out.sdk/cpptest.uno.dll
java stack trace:
at com.sun.star.bridges.jni_uno.JNI_proxy.dispatch_call(Native Method)
at com.sun.star.bridges.jni_uno.JNI_proxy.invoke(JNI_proxy.java:183)
at $Proxy2.createInstanceWithContext(Unknown Source)
at test.types.CppTest.create(Unknown Source)
at test.java.tester.Tester.test(Tester.java:29)
at test.java.javanative.JavaNative.main(JavaNative.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.star.lib.unoloader.UnoClassLoader.execute(UnoClassLoader.java:160)
at com.sun.star.lib.unoloader.UnoLoader.execute(UnoLoader.java:81)
at test.java.runner.Runner.main(Runner.java:28)
at test.types.CppTest.create(Unknown Source)
at test.java.tester.Tester.test(Tester.java:29)
at test.java.javanative.JavaNative.main(JavaNative.java:26)
... 7 more
Makefile:82: recipe for target 'test-javanative' failed
mingw32-make: *** [test-javanative] Error 1
but test-cpptest, test-javateset, and
the (manual) test-clientserver all work. No idea yet what is broken there.
If anybody has insight into my two questions at
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=5051209534c8a2034dcb0016d4a8fe29dcb2947b>
"Adapt SDK to usage of msvcrtd for Windows --enable-dbgutil," that would
be appreciated:
* The old settings.mk was apparently confused with using /MT ("link with
LIBCMT.LIB") on cl command line and /MD ("link with MSVCRT.LIB") on link
command line (where it was ignored), and you apparently can't pass both
together to cl, so I settled on /MD (resp. /MDd) now and dropped /MT (resp.
/MTd). No idea if that is exactly right, however.
* Introduced client-facing LIBO_SDK_LDFLAGS_STDLIBS that covers kernel32.lib and
msvcrt.lib vs. msvcrtd.lib on Windows. Adapted examples Makefiles and
/ure/source/uretest/Makefile accordingly. Some examples Makefiles
additionally use msvcprt.lib, no idea whether that still needs to be
addressed.
Stephan
Context
- LibreOffice SDK on Windows · Stephan Bergmann
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.