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

  • From: Neil Soiffer <soiffer@xxxxxxxxxxxx>
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Wed, 19 Apr 2017 12:28:31 -0700

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\li
blouisutdml\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.



GIF image

Other related posts: