-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linker warnings give missplaced output #4
Comments
@JamesRamm these warnings shouldn't be a problem. Do you have the mapnik-sdk already in place (libraries, that mapnik depends on, e.g. boost, icu, cairo, png, libxml2, ....)? If not, a good starting place is mapnik-dependencies. The docs are a bit out of date, as we have been changing a lot lately, but these steps should get you going:
This will download and build all dependencies and mapnik itself, which you will then find in
Be patient, depending on your machine and internet connection, the whole process might take some time. The script will also try to build node-mapnik, which at the moment fails, but as you don't need it, that shouldn't be a problem. |
Yes, mapnik dependencies all built successfully following the instructions here: My only problems are with the final mapnik build Mapnik does build and the automatic tests seem to run successfully, but I get all the linker warnings and after looking at the folders/files generated it does seem like things are not where I would expect them to be. I.e the resulting folder structure is not like what I would expect based on the currently available binaries/SDK.
The I suspect that these two It may be that I simply don't understand the final folder structure and how to package that into something I can distribute with a python program. In any case, this is where the documentation ends, so it might be worth adding a little more to explain how the final output relates to what mapnik users are used to seeing? My main purpose is to build the python bindings with cairo & pgraster support - we may move to C++ in the future but we really need the python bindings going with Cairo and pgraster for now. |
Yes, you are correct, the Python bindings are not copied to the sdk directory. |
Thanks for helping test this new build workflow @JamesRamm. We've made no effort yet to copy around the built results to be useable via python, but this should not be to hard. @BergWerkGIS would be great if you want to take a look at that this week. The only tricky bit is the generation of the |
I'll add that this is the settings file I use on linux to test the python bindings in-place (https://github.com/mapnik/mapnik-gyp/blob/master/localize.sh) without having to move them to a more reasonable structure. But yeah, we should start doing this so that you can more easily just set PYTHONPATH and have it work. |
That would be great... I did try moving the whole mapnik build folder ( I'll have some more play around and see if I can't make a batch file to shift the necess. files around. |
@JamesRamm if you can push this forward that would be great. As far as debugging missing DLLs I presume you know about depedency walker? (http://www.dependencywalker.com/). Another trick is to try importing the module with ctypes and see what the error is: https://github.com/mapnik/node-mapnik/wiki/Troubleshooting#the-specified-module-cannot-be-found |
Ok, solution. 1). 2). All the 3). Create or edit the PYTHONPATH environment variable. Add the path to the python directory in 4). Add the path to 5). Open a python interpreter and import mapnik. It should hopefully fail with this error: On our dev/testing/whatever machine, we have two options. We can simply specify the environment variables For release, we probably want to set something up so The contents of my
OK..that done, restart the interpreter and try importing mapnik again. All should be fine. |
Oo, should also note that (and this is quite important actually), the msvcp140.dll, appcrt140.dll, desktopcrt140.dll and vcruntime140.dll need to be on the users' path, which is unlikely as visual studio 2014 is not even released yet... These last 3 DLL's replace the msvcrXX.dll of previous VS editions... |
@springmeyer , @BergWerkGIS FYI, I figured this issue would be better on the main project as it is not strictly a build issue: But you may be able to chime in as it is potentially (?) due to some build problem... |
I'm finding that I have to set the PROJ_LIB environment variable on my deployment machine to get stuff like |
This is expected. The needed fix is #7. Want to take a crack at that? |
Correct, for now the documentation for windows needs to note that vcredist.exe needs to be installed. Want to add something like this to the readme?
|
Absolutely I think we should add it to the bat / programmatically set everything up just like the final package will be. The use of the environment variables of |
When running the mapnik build, I'm getting a warning for each visual studio solution that was created by gyp, along the lines of:
MSB8012 TargetPath does not match the Linkers OutputFile property
The result is that there seems to be files missing from the output...
It seems this issue is caused by upgrading a solution from one version of VS to another (I presume gyp is handling this or something as the sln files are autogenerated). I don't know enough about gyp to fix it in the gyp file, so I tried manually editing the .sln files in VS2014, but could not get it going.
It would be helpful if the instructions gave some indication of the expected output and folder structure to help with determining what went wrong and where.
The text was updated successfully, but these errors were encountered: