Comments (8)
I would use the Ninja or MinGW Makefiles generator instead of Visual Studio. I've never gotten Visual Studio to work. I should update the message to note that. I almost always use Ninja as it generally works faster and more reliably than GNU Make. https://github.com/ninja-build/ninja/releases
from mumps.
Now, using Visual Studio emits an error as I don't know how to make VS work with Mumps
from mumps.
@koutoui just for reference: the approach here followed mixes C and Fortran source files all at once (e.g. mumps_common).
Visual Studio then considers the target as C/C++ code, but actually the compiler options that are passed are for the Fortran compiler.
In order to overcome this issue I think that you have to compile (where "compile" is used in the strict sense i.e. without linking) C and Fortran file in separate object files, then link the two object files in a single library.
Something like:
ADD_LIBRARY(mumps_common
$<TARGET_OBJECTS:MUMPS_COMMON_OBJ_FORTRAN>
$<TARGET_OBJECTS:MUMPS_COMMON_OBJ_C>
${MUMPS_COMMON_EXPORTS})
(here the MUMPS_COMMON_EXPORTS are used to allow the symbol exposition that was probably needed because I was compiling shared libraries and I don't know if MUMPS_CALL was enough to export all the symbols needed)
This allowed me to compile Mumps in Windows directly in VS and also as shared library at least for 5.1.2 (the last time I tried) but it is quite stressful operation.
from mumps.
Yes I tried this in "objects" branch but had problems with the cyclical links in Mumps.
I think this is a worthwhile improvement. To do this, I will probably have to start with the original Mumps Makefiles, mimicking their numerous object file creation. Once that works, I can combine into fewer object files perhaps, or just so some foreach()
loops.
from mumps.
If it can be of any help this is my full CMakeLists (dated back to Mumps 5.1.1) that I've used for a while to build Mumps for our software.
However, what I did is to merge all the libraries in just one shared library. Probably this overcame the problem, but then you won't have the standard set of files (mumps_common, dmumps, etc will be collapsed in a single libdmumps).
CMakeLists_5.1.1.txt
from mumps.
OK thank you!
from mumps.
This project is too awesome!
but I also encountered this link problem in Windows(intel toochain with msvc), and I am looking forward to a good solution!
dmumps.lib(mumps_c.obj) : error LNK2019: unresolved external symbol DMUMPS_SET_TMP_PTR referenced in function DMUMPS_SET_TMP_PTR_C
dmumps.lib(mumps_c.obj) : error LNK2019: unresolved external symbol DMUMPS_F77 referenced in function dmumps_c
from mumps.
For both #1 and #2, despite recent MUMPS CMake enhancement re: shared libs, on Windows with Intel oneAPI (icl/ifort or icx/ifx) shared libs still don't work. This may be an upstream MUMPS issue. Using static libs (the default) does work.
from mumps.
Related Issues (20)
- Using the BLAS extension GEMMT
- Find static MKL LAPACK and ScaLAPACK libraries on Linux HOT 15
- Link error windows oneapi HOT 4
- How to output the factor of matrix A into files
- How to build mumps in Windows 10 + VS2019 + intel Fortran 2020?
- 64-bit integer use of MUMPS always meet INFO(1)=-3 HOT 1
- Update to MUMPS 5.6.0 HOT 1
- ParMetis and scotch ordering options HOT 5
- The mingw version always produces NaN results when Out-Of-Core is enabled HOT 1
- Update to MUMPS 5.6.1
- Removing RUNPATHS from installed DSOs HOT 1
- Build fails on Windows HOT 3
- Rename SCALAPACK to ScaLAPACK
- Error: Type mismatch in argument ‘s’ at (1); passed INTEGER(4) to LOGICAL(4) HOT 2
- How to compile with parmetis? HOT 1
- CMake can not determine linker language for target: mumpscfg HOT 1
- Missing variable is: CMAKE_Fortran_PREPROCESS_SOURCE HOT 1
- GEMMT disabled by default for oneAPI 2024 on Windows? HOT 1
- Can't find MPI HOT 2
- Can't build project with Metis and Scotch ON HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mumps.