Skip to content
This repository has been archived by the owner on Nov 26, 2022. It is now read-only.

fatal error LNK1181: cannot open input file 'm.lib' #33

Closed
HaoZhou0810 opened this issue Oct 14, 2020 · 3 comments
Closed

fatal error LNK1181: cannot open input file 'm.lib' #33

HaoZhou0810 opened this issue Oct 14, 2020 · 3 comments

Comments

@HaoZhou0810
Copy link

Hello, I'm trying to install ois in PyCharm under windows10. Before installing ois, MSVC build tool was installed due to C++ 14.0 is required for astroalign package.
When begin to install ois, the error message shows "fatal error LNK1181: cannot open input file 'm.lib' ". I examined the LIBPATHs in error message to check whether there was a 'm.lib' file, of course this file doesn't exist.
So, is the 'm.lib' file very neccessary for ois? Is it safe to remove the line "libraries = ['m']" in setup.py like coreylynch/pyFM#18 ? Or, Is there somewhere I could find this lib file?

here is error message[I split them to make them easier to read by human :) ]


C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO

/LIBPATH:C:\Users\zhou1\AppData\Local\Programs\Python\Python38\libs
/LIBPATH:C:\Users\zhou1\AppData\Local\Programs\Python\Python38\PCbuild\amd64
"/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\lib\x64"
"/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64"
"/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" m.lib

/EXPORT:PyInit_varconv build\temp.win-amd64-3.8\Release\src/varconv.obj build\temp.win-amd64-3.8\Release\src/oistools.obj
/OUT:build\lib.win-amd64-3.8\varconv.cp38-win_amd64.pyd
/IMPLIB:build\temp.win-amd64-3.8\Release\src\varconv.cp38-win_amd64.lib

LINK : fatal error LNK1181: cannot open input file “m.lib”
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe' failed with exit status 1181

@martinberoiz
Copy link
Member

Hi, yes the "m" library is supposed to translate into the flag -lm in compilers like clang and gcc. It's the (usually) built-in math library (when you include math.h). If you're compiling it on windows, I think it's safe to remove it, and it should still compile but let me know if it doesn't.

I don't know how things work on the windows side, I will open an issue for testing on windows. Thanks for pointing it out.

@HaoZhou0810
Copy link
Author

Installation succeeded after removing libraries = ['m'], and I did some test to check ois works properly or not. It works well, thanks for your answer.

@martinberoiz
Copy link
Member

Glad to hear it all worked well. I'll see how to incorporate this in future releases.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants