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

  • From: Neil Soiffer <soiffer@xxxxxxxxxxxx>
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Thu, 20 Apr 2017 16:18:28 -0700

In the .vcxproj file there is:

<IncludePath

..\..\Include;c:\libxml2-2.7.2\include;C:\liblouis-2.6.5\windows\include;C:\liblouis-2.6.5\liblouis;$(IncludePath)</
IncludePath>
<LibraryPath>C:\liblouis-2.6.5\windows;$(ProjectDir)\lib;$(LibraryPath)</
LibraryPath>


This is present for both the debug and release versions. You can fix this
from the IDE, but I think editing the file directly is probably easiest. I
suspect you want to update the version numbers of the various components
listed while you are at it.

    Neil


On Thu, Apr 20, 2017 at 6:07 AM, Paul Wood <paulw@xxxxxxxxxxxxxx> wrote:

Hi Neil,

Thanks for contributing, my aim is/was to make it usable to as many as
can. Can you let me know what paths are NOT relative as I thought I had set
them all to relative paths. I am by no means a VS expert, but I needed to
get a debug solution for liblouisUTDML and so eventually got it building
via the VS GUI. As with us all my time is limited as I have so many other
"balls in the air" and am glad for any suggestions that resolve Norbert and
other's issues so anyone can debug/use liblouis and liblouisUTDML as fully
as possible.

Thanks
Paul

On 20/04/2017 00:48, Neil Soiffer wrote:

I didn't see the pull request as I grabbed the main branch. Looking at
that project file, I see it is a "real" VS build -- it does not use nmake.
However, it hard codes a number of paths which I strongly suggest turning
into relative paths or paths that make use of environment variables as one
shouldn't force absolute file locations on others.

    Neil


On Wed, Apr 19, 2017 at 2:08 PM, Norbert Markus <hamilfonz@xxxxxxxxx>
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 <soiffer@xxxxxxxxxxxx>
*Sent:* Wednesday, April 19, 2017 9:28 PM
*To:* 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
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>
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 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 <soiffer@xxxxxxxxxxxx>
*Sent:* Wednesday, April 19, 2017 12:08 AM
*To:* 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/l
ibxml2/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 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>
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 <paulw@xxxxxxxxxxxxxx>
*Sent:* Tuesday, April 18, 2017 5:32 PM
*To:* 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> 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. [image: 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 <+44%201858%20438269>*
Tel: *+44(0)1858 438260 <+44%201858%20438260>*, Fax: *+44(0)1858 438275
<+44%201858%20438275>*
Email: paulw@xxxxxxxxxxxxxx
Website: 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.

GIF image

Other related posts: