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
Compiling in windows #33
Comments
Can you try I guess fdlibm cannot be built on cygwin, but that dependency will be going away. The warnings about -fPIC are unimportant (except that there will be fewer once it is detecting the OS correctly) I don't see an error message for MinGW, was there something more before that, or if you run make again? |
Specifying OS=WINNT gets me a little further but not all the way. We can come back to the other ways of building if we need but I think I'm really close with my 3rd environment (MingGW and cygwin in the path, make from plain windows command prompt). I've pulled in a few more cygwin packages and things are smoother, but I get stuck here:
I've tried several things. Looking online the consensus seems to be that somewhere a path containing 's needs to be converted to /'s (or vice versa) and so I've tried hard-coding $(USRLIB) in a couple different places... I also started to think that name random was wrong and that it meant librandom.dll (which is inside the USRLIB directory) so I played with that as well. So far, no love... any ideas? |
Try adding What additional packages were required? (for if someone else wanted to follow your work) |
Alas, that doesn't give me much more to report. It outputs a list of the object files and clarifies what directories it's stepping into, but it doesn't tell me where it's looking for -lrandom:
It does seem to include the USRLIB directory... are you sure that "-lrandom" will pick up "librandom.dll"? Or, do you know where all it will look (current folder, path, etc)? As for additional packages... unfortunately I was far from scientific in my installing. Also, because there are a million choices of cygwin packages to install everyone is going to have different requirements. Later I'll probably have to build on a different windows machine, what I'll do is start with a bare bones cygwin install and then include packages one by one (then post somewhere). |
Yes, -lxxx is supposed to search for libxxx.dll. There's no way AFAIK to get the compiler to spew a list of its search directories. However, the -L flag is adding the proper directory to the search path. If you do (note: if you enclose code in triple back ticks (the key to the left of the 1) followed by a newline, you can make code output more readable) |
I didn't know about nm, that's pretty cool. So, I thought I had but I guess I forgot to test changing:
To:
Now I get:
So... even closer, but still not quite :/ |
Hey! I'm now very close. Several errors have just been variations of a problem where calls to "abspath" in a windows command prompt return paths with 's and need to be converted to /'s. I've patched over the problems by hard-coding the paths but I'm sure there's a way to conditionally calling some alternative to "abspath" that will contain /'s. I'll look more at that when I've got this working. Right now I'm down to the "make extras" step in the root makefile (almost done). The problem I'm having is strange... The commands of interest are in the makefile inside julia/deps/glpk-4.47/src The output is simply:
No matter what I do... I can't even "make clean" because it thinks there are multiple targets... The other thing that I've seen is the suggestion that the wrong "link" is being executed so I've also tried putting mingw and cygwin ahead of window's stuff in the path... Do you see anything in that Makefile? And is that something I should be changing anyway (is it a packaged part of glpk)? |
OK, I did a little more searching and I don't think / vs \ shouldn't matter, but C:/cygwin/home vs /home apparently does. That include file is in deps/openlibm/include and should be included with -I (upper case i) You may have success adding in adding -W to invocations of pwd, I'm not sure what the analog for abspath would be though I can take a look into GLPK when I have more time later. |
Have you guys made changes to GLPK? What would happen if I just used their binaries? |
You can just use their binaries. Setting USE_SYSTEM_GLPK=1 in make will prevent julia from building its own. (this is actually true of most of the items in deps -- the complete list can be found in Make.inc) |
Do you have any updates, or can I close this issue so that it can be recreated later given more specific build errors? |
Works for me! |
I'm having trouble compiling on windows 7. I've tried three environments:
MinGW
I have an install of MinGW that includes all the compilers it optionally installs (including fortran). From the MingGW32 terminal I make (my make was part of a cygwin install) Julia and get these warnings / errors:
Cygwin
I have an install of cygwin which (I think) includes everything I need... Unless it didn't come with gfortran, in which case I installed that separately. From the cygwin terminal I make Julia and get these warnings/ errors:
Cygwin and MinGW
I tried running make in the Julia directory from the windows terminal (with MinGW/bin before cygwin/bin, as advised by the MingGW FAQ) and saw:
The same "Incompatible implicit declaration of built in function" warnings that MinGW generated
Then:
Does anyone spot anything right off that I'm doing wrong or missing? Also, I notice that some of these warnings seem to have come up before here: JuliaLang#717
The text was updated successfully, but these errors were encountered: