[liblouis-liblouisxml] Re: Questions about the VS projects

  • From: Davy Kager <DavyKager@xxxxxxxxxx>
  • To: "'liblouis-liblouisxml@xxxxxxxxxxxxx'" <liblouis-liblouisxml@xxxxxxxxxxxxx>
  • Date: Mon, 24 Apr 2017 06:32:51 +0000

Hi all,

For liblouis (not liblouisutdml) I am patching up the MSVC support. This 
includes:

-          Do away with windows/liblouis.h and windows/liblouis.def.

-          Add the findTable functionality, i.e. work around dependency on 
dirent.h.

-          Update the NMake file.

-          Change the MinGW stuff a bit because it’s currently exporting too 
many functions.

-          Update the MSVC solution and projects to the new situation.
The tools are out of scope for now.
See: https://github.com/liblouis/liblouis/tree/integration/msvc

Davy

Van: liblouis-liblouisxml-bounce@xxxxxxxxxxxxx 
[mailto:liblouis-liblouisxml-bounce@xxxxxxxxxxxxx] Namens Norbert Markus
Verzonden: donderdag 20 april 2017 23:49
Aan: liblouis-liblouisxml@xxxxxxxxxxxxx
Onderwerp: [liblouis-liblouisxml] Re: Questions about the VS projects

Hi Paul,
I am just after having downloaded pull request #23 and dealing with the sources 
included, that is, I am afraid, liblouisutdml 2.5 that was recent at that time 
(June or July 2016).
My first modest objective is to build the solution as it is just to see that I 
can do it over here too. Once I succeed, I would like to make the source up to 
date and repeat the build to get binaries corresponding to the latest version.
What do you think, is this a logical path?

I still need to find out which pull request contains the VS solution for the 
then matching liblouis version and how to deal with the libxml2 dependency.

Hope I did not forget to mention any important detail.

Thanks for your assistance!

Best Regards, Norbert.


From: Paul Wood<mailto:paulw@xxxxxxxxxxxxxx>
Sent: Thursday, April 20, 2017 3:10 PM
To: 
liblouis-liblouisxml@xxxxxxxxxxxxx<mailto:liblouis-liblouisxml@xxxxxxxxxxxxx>
Subject: [liblouis-liblouisxml] Re: Questions about the VS projects


Hi Norbert,

where are you at now? which source are you using 3.0.0 or 3.1 or main 
repository? I want to try and start where you are.

Thanks
Paul

On 19/04/2017 22:08, Norbert Markus wrote:
Hi Neal,
There is a separate VS solution specifically for file2brl.exe. I don't want to 
state any non-sense before I've gotten that far myself but I can simply see 
that pull request #23 contains two solutions: one for liblouisutdml.dll and 
another for file2brl.exe.
Thanks for drawing my attention to the fact that nmake scripts are encapsulated 
into the VS project's build mechanism. I wasn't aware of it. I am just 
beginning to look around in the stuff. It seems there is still a lot to 
understand.
Thanks a lot for the nmake excerpt. Any such information is welcome.
Best Regards, Norbert.

From: Neil Soiffer<mailto:soiffer@xxxxxxxxxxxx>
Sent: Wednesday, April 19, 2017 9:28 PM
To: 
liblouis-liblouisxml@xxxxxxxxxxxxx<mailto:liblouis-liblouisxml@xxxxxxxxxxxxx>
Subject: [liblouis-liblouisxml] Re: Questions about the VS projects

FYI: I too am using the VS solution. If you look at the .vcxproj file, it 
basically calls nmake (copied relevant commands below for your convenience), so 
there shouldn't be any  difference from doing the commands yourself from a 
command line. Of course if you are debugging or developing something, that's 
where using VS's IDE is really useful.
In case you weren't aware, the makefiles do not mention file2brl and so they 
(and the VS solution) won't build it. It looks like you need to modify 
Makefile.nmake to include building and invoking the 
makefile.am<http://makefile.am> in the tools dir, but I don't need that file 
and I'm out of my league in answering questions about building it.


======= from vcxproj file =======
mkdir libslib
set LXCCFLAGS= /wd4005
nmake  /f makefile.nmake
del /f /q liblouisutdml.lib
nmake /f makefile.gen liblouisutdml.lib
copy liblouisutdml.lib libslib

On Wed, Apr 19, 2017 at 1:40 AM, Norbert Markus 
<hamilfonz@xxxxxxxxx<mailto:hamilfonz@xxxxxxxxx>> wrote:
Hi Neil,
I was relatively lucky with the nmake script for liblouisutdml. It has gone 
through with no fatal errors and built the dll but it did not create 
file2brl.exe that I still badly need. I modified MakeFile.nmake neither for 
liblouis nor for liblouisutdml. I don't know what factorsaved me from fatal 
errors.

 Readme.windows says that Libxml2 version 2.7.2 is needed. First I tried to 
deviate from it but my lack of discipline was quickly retaliated, so I urgently 
fetched the right version but I could only find the source. Thanks for the hint 
about how to build its binaries. The paths are correct in 
configure.mk<http://configure.mk> I believe.
However, after experimenting with the command line tools for weeks with partial 
success, I decided to turn my hand to the Visual Studio solution.
Thank You all in advance if any progress is made on my side.

Norbert.


From: Neil Soiffer<mailto:soiffer@xxxxxxxxxxxx>
Sent: Wednesday, April 19, 2017 12:08 AM
To: 
liblouis-liblouisxml@xxxxxxxxxxxxx<mailto:liblouis-liblouisxml@xxxxxxxxxxxxx>
Subject: [liblouis-liblouisxml] Re: Questions about the VS projects

I'm currently trying to build liblouis and liblousutdml with VS 2015. I am 
building from the current github versions (some suggested fixes below).  I have 
run into some problems with linking, but I think I can answer a few questions. 
I'm jumping into the middle of this discussion, so apologies if these have 
already been answered or my answers are off base...

libxml2 2.7.8 can be found at https://git.gnome.org/browse/libxml2/tag/?h=v2.7.8
I believe it gets built due to lines in windows\make_makefile.c
I don't have and don't seem to need libiconv.dll and libiconv.lib.

Make sure you edit windows\configure.mk<http://configure.mk> in your 
liblouisutdml dir to point to the right locations.
What I have found so far that needs changing are:
liblouis ERRORS:
liblouis\windows\Makefile.nmake
commonTranslationFunctions.c not part of makefile
change to:
OBJ = commonTranslationFunctions.obj compileTranslationTable.obj 
lou_translateString.obj \
    lou_backTranslateString.obj logging.obj wrappers.obj pattern.obj
add as first compile rule (to keep alphabetical):
commonTranslationFunctions.obj: $(SRCDIR)\commonTranslationFunctions.c \
    $(HEADERS)
    $(CC) $(CFLAGS) $(SRCDIR)\commonTranslationFunctions.c

liblouis WARNINGS:
liblouis\compileTranslationTable.c:(4011) : 'ptn_regex': unreferenced local 
variable
Fix by removing ptn_regex


liblouisUTDML link WARNINGS/ERRORS:
As I mentioned at the start, I haven't gotten liblouisUTDML to link yet. Some 
warnings are:
4>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; 
use /NODEFAULTLIB:library

Lots like:
4>liblouis.lib(lou_translateString.obj) : warning LNK4217: locally defined 
symbol _calloc imported in function _hyphenate
And finally the fatal errors:
4>liblouis.lib(compileTranslationTable.obj) : error LNK2019: unresolved 
external symbol __imp___stricmp referenced in function _findOpcodeNumber
4>liblouis.lib(pattern.obj) : error LNK2019: unresolved external symbol 
__imp__puts referenced in function _pattern_output_expression
4>MSVCRT.lib(_chandler4gs_.obj) : error LNK2019: unresolved external symbol 
__except_handler4_common referenced in function __except_handler4

If someone has seen these before and knows a fix, it would save me time 
figuring out what's not right with the linking.
Thanks,

    Neil


On Tue, Apr 18, 2017 at 8:36 AM, Norbert Markus 
<hamilfonz@xxxxxxxxx<mailto:hamilfonz@xxxxxxxxx>> wrote:

Hi Paul,
Thanks for your immediate response.
I will appreciate if you can deal with my questions from Thursday on.
In the meanwhile, I am trying to find the pull request for the liblouis VS 
project and to sort out the path controversy.
Until no better solution is suggested, I am going to use the libxml binaries 
included in #23.

Have a nice holiday!

Best Regards, Norbert.


From: Paul Wood<mailto:paulw@xxxxxxxxxxxxxx>
Sent: Tuesday, April 18, 2017 5:32 PM
To: 
liblouis-liblouisxml@xxxxxxxxxxxxx<mailto:liblouis-liblouisxml@xxxxxxxxxxxxx>
Subject: [liblouis-liblouisxml] Re: Questions about the VS projects

Hi Norbert,
I am on holiday, but back Thursday. I hope to look at this this week, but I 
have plenty of work piled up, but I am keen to find out why your build is nor 
working. Liblouis is needed by liblouisutdml and both are needed by file2brl.
Bye for now
Paul

On 18 Apr 2017 4:16 p.m., "Norbert Markus" 
<hamilfonz@xxxxxxxxx<mailto:hamilfonz@xxxxxxxxx>> wrote:
Hi Paul,

I am trying to get under control your liblouisutdml solution for Visual Studio 
downloaded from your pull request #23. My first objective is to be able to 
build the projects with ctrl-F5 encountering no errors. This is not yet 
achieved, unfortunately.
A further objective is to update the source to the latest liblouis and 
liblouisutdml versions and to successfully build the projects including the 
DLLs and EXEs, thus to obtain an up-to-date runnable version (especially of 
file2brl.exe) for windows.

In your previous related message, You wrote that you have created two projects, 
one for liblouis and another for liblouisutdml. What is the pull request number 
of the former (i.e., for liblouis).

What is the relationship between these solutions from the respect of Visual 
Studio? Is there a common entry point to start the build process of all 
components, or should these projects be built in a particular order and to be 
referenced to each other?
For instance, should I first build the project for liblouis, then another 
project for liblouisutdml referring to the result(s) of the liblouis build, and 
then in a third pass, should the project for file2brl be built based on the 
results of the former two?

I have copied the folder for the liblouisutdml solution downloaded from git to:
C:\users\Norbert\documents\Visual Studio 2015\projects
Here I truncated the original download folder name to liblouisutdml.

I found all the VS related stuff in subfolders of the windows folder. I assume, 
not everything is needed for VS in the complete downloaded folder, but at this 
moment I am unable to figure out what to jettison with no severe consequences.
I found two .sln files:
windows\msvc\file2brl\file2brl.sln
windows\msvc\liblouisutdml\liblouisutdml.sln

In both cases, I began the procedure by clicking on one of these that launched 
VS and loaded the solution. I did not hope it will work for the first try but I 
pressed ctrl-F5 and got a question: "This project is out of date. Would you 
like to build it anyway?" I am not exactly sure what it means but I answered 
yes to proceed.
Then: build failed.
In case of liblouisutdml.sln, there were 24 errors and 2 warnings. I checked a 
few of the errors complaining about that liblouisutdml.h and liblouis.h 
(several of them) cannot be found here:
c:\users\Norbert\documents\Visual Studio 
2015\projects\liblouisutdml\liblouisutdml\liblouisutdml.h

It hints, that I copied too many depths of the downloaded folder to the 
projects directory, but it is not exactly clear what path to provide for a 
successful build.
Can you help me find out where to copy what of the material you've uploaded 
last year?
I assume manually correcting all instances of the references to such missing 
files wouldn't be a wise method. [Mosolygó arc                                  
              Hangulatjel]

A similar attempt to build the project for file2brl produces 8 errors of 
similar kind. In addition to missing header files, there are errors missing 
certain type definitions, e.g., among others: loglevels and widechar if I 
remember well.

What are the necessary steps to get these solutions configured appropriately?

Some further questions:
In the windows\msvc\liblouisutdml\lib folder, I found libiconv.dll, 
libiconv.lib, libxml2.dll and libxml2.lib needed for xml parsing.
How did you obtain these files?
Have you created another vs project to build them? (I haven't found anything in 
your liblouisutdml project to hint that libxml2 is built as part of that 
solution.)
Have you created these files by running a command line build process included 
in the libxml2 source folders?
Or have you found and downloaded prebuilt binaries?

Earlier, I ran a few rounds with this: first I obtained the latest libxml2 
version (2.9.4), but its header files caused lots of error messages when I 
tried to build liblouisutdml using a command line nmake tool.
Later I found the source for version 2.7.2 that appeared to be adequate but the 
nmake script that builds liblouisutdml seems not to build the libxml2 binaries.
Then I looked around to download prebuilt binaries but I could not find 
versions as old as 2.7.2. Even the more recent packages include no .lib files.

Please help me if you can, configure and build your original VS solution on my 
local machine.

Thanks in advance, your help would be invaluable.
Best Regards, Norbert.



--

Paul Wood, Chief Technical Officer
Torch Trust
Torch House, Torch Way,
Market Harborough, Leics. LE16 9HL, UK
Direct Line: +44(0)1858 438269
Tel: +44(0)1858 438260, Fax: +44(0)1858 438275
Email: paulw@xxxxxxxxxxxxxx<mailto:paulw@xxxxxxxxxxxxxx>
Website: www.torchtrust.org<http://www.torchtrust.org/>

____________________________________________________

Chief Executive: Dr Gordon Temple
Charity No. 1095904

Privileged/Confidential Information may be contained in this message.
If you are not the intended recipient please destroy this message
and kindly notify the sender by reply email. The computer from which
this mail originates is equipped with virus screening software.
However Torch Trust cannot guarantee that the mail and its attachments
are free from virus infection.

DISCLAIMER:
De informatie verzonden met dit e-mail bericht is uitsluitend bestemd voor de 
geadresseerde. Indien u niet de beoogde geadresseerde bent, verzoeken wij u 
vriendelijk dit aan de afzender te melden (of via: 
info@xxxxxxxxxx<mailto:info@xxxxxxxxxx>) en het origineel en eventuele kopieën 
te verwijderen.

The information sent in this e-mail is solely intended for the individual or 
company to whom it is addressed. If you received this message in error, please 
notify the sender immediately (or mail to 
info@xxxxxxxxxx<mailto:info@xxxxxxxxxx>) and delete the original message and 
possible copies.

GIF image

Other related posts: