Hi,
I'm currently trying to wrap PRIMA into a C# interface and, well, building is already an issue. :)
Judging from the CMakeFiles, I thought I'd only have to switch on BUILD_SHARED_LIBS but maybe I'm missing something.
My output right now is
PS C:\MyWS\prima> cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install -DBUILD_SHARED_LIBS=1
-- Building for: Visual Studio 16 2019
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22621.
-- The Fortran compiler identification is Intel 2021.10.0.20230609
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Determine Intel Fortran Compiler Implicit Link Path
-- Determine Intel Fortran Compiler Implicit Link Path - done
-- Check for working Fortran compiler: C:/Program Files (x86)/Intel/oneAPI/compiler/2023.2.1/windows/bin/intel64/ifort.exe - skipped
-- The C compiler identification is MSVC 19.29.30151.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done (15.4s)
-- Generating done (0.1s)
-- Build files have been written to: C:/MyWS/prima/build
PS C:\MyWS\prima> cmake --build build --target install
Microsoft Visual Studio 2019 Version 16.11.28.
Copyright (C) Microsoft Corp. Alle Rechte vorbehalten.
Erstellen gestartet...
1>------ Erstellen gestartet: Projekt: ZERO_CHECK, Konfiguration: Debug x64 ------
1>1>Checking Build System
2>------ Erstellen gestartet: Projekt: primaf, Konfiguration: Debug x64 ------
Compiling with Intel® Fortran Compiler Classic 2021.10.0 [Intel(R) 64]...
consts.F90
pintrf.f90
huge.F90
infos.f90
debug.F90
inf.F90
memory.F90
redrho.f90
infnan.F90
string.f90
ratio.f90
linalg.f90
history.f90
selectx.f90
checkexit.f90
preproc.f90
fprint.f90
powalg.f90
evaluate.f90
trustregion.f90
univar.f90
trustregion.f90
message.f90
geometry.f90
trustregion.f90
trustregion.f90
xinbd.f90
update.f90
update.f90
shiftbase.f90
getact.f90
update.f90
geometry.f90
update.f90
initialize.f90
geometry.f90
initialize.f90
geometry.f90
uobyqb.f90
rescue.f90
update.f90
geometry.f90
trustregion.f90
initialize.f90
initialize.f90
initialize.f90
uobyqa.f90
lincob.f90
lincoa.f90
cobylb.f90
bobyqb.f90
newuob.f90
cobyla.f90
bobyqa.f90
newuoa.f90
Performing Pre-Link Event...
Compiling manifest to resources...
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation. All rights reserved.
Linking...
Microsoft (R) Incremental Linker Version 14.29.30151.0
Copyright (C) Microsoft Corporation. All rights reserved.
/OUT:C:\MyWS\prima\build\bin\Debug\primaf.dll
/VERSION:0.0
/DEF:C:\MyWS\prima\fortran\primaf-Intel.def
/MANIFEST
/MANIFESTFILE:primaf.dir\Debug\primaf.dll.intermediate.manifest
"/MANIFESTUAC:level='asInvoker' uiAccess='false'"
/DEBUG
/PDB:C:\MyWS\prima\build\bin\Debug\primaf.pdb
/IMPLIB:C:\MyWS\prima\build\fortran\Debug\primaf.lib
/DLL
user32.lib
/machine:x64
/debug
/INCREMENTAL
primaf.dir\Debug\consts.obj
primaf.dir\Debug\pintrf.obj
primaf.dir\Debug\huge.obj
primaf.dir\Debug\infos.obj
primaf.dir\Debug\debug.obj
primaf.dir\Debug\inf.obj
primaf.dir\Debug\memory.obj
primaf.dir\Debug\redrho.obj
primaf.dir\Debug\infnan.obj
primaf.dir\Debug\string.obj
primaf.dir\Debug\ratio.obj
primaf.dir\Debug\linalg.obj
primaf.dir\Debug\history.obj
primaf.dir\Debug\selectx.obj
primaf.dir\Debug\checkexit.obj
primaf.dir\Debug\preproc.obj
primaf.dir\Debug\fprint.obj
primaf.dir\Debug\powalg.obj
primaf.dir\Debug\evaluate.obj
primaf.dir\Debug/uobyqa/trustregion.f90.obj
primaf.dir\Debug\univar.obj
primaf.dir\Debug/bobyqa/trustregion.f90.obj
primaf.dir\Debug\message.obj
primaf.dir\Debug/cobyla/geometry.f90.obj
primaf.dir\Debug/newuoa/trustregion.f90.obj
primaf.dir\Debug/cobyla/trustregion.f90.obj
primaf.dir\Debug\xinbd.obj
primaf.dir\Debug/uobyqa/update.f90.obj
primaf.dir\Debug/cobyla/update.f90.obj
primaf.dir\Debug\shiftbase.obj
primaf.dir\Debug\getact.obj
primaf.dir\Debug/newuoa/update.f90.obj
primaf.dir\Debug/uobyqa/geometry.f90.obj
primaf.dir\Debug/bobyqa/update.f90.obj
primaf.dir\Debug/cobyla/initialize.f90.obj
primaf.dir\Debug/bobyqa/geometry.f90.obj
primaf.dir\Debug/uobyqa/initialize.f90.obj
primaf.dir\Debug/lincoa/geometry.f90.obj
primaf.dir\Debug\uobyqb.obj
primaf.dir\Debug\rescue.obj
primaf.dir\Debug/lincoa/update.f90.obj
primaf.dir\Debug/newuoa/geometry.f90.obj
primaf.dir\Debug/lincoa/trustregion.f90.obj
primaf.dir\Debug/lincoa/initialize.f90.obj
primaf.dir\Debug/newuoa/initialize.f90.obj
primaf.dir\Debug/bobyqa/initialize.f90.obj
primaf.dir\Debug\uobyqa.obj
primaf.dir\Debug\lincob.obj
primaf.dir\Debug\lincoa.obj
primaf.dir\Debug\cobylb.obj
primaf.dir\Debug\bobyqb.obj
primaf.dir\Debug\newuob.obj
primaf.dir\Debug\cobyla.obj
primaf.dir\Debug\bobyqa.obj
primaf.dir\Debug\newuoa.obj
primaf.dir\Debug\primaf.dll.embed.manifest.res
Bibliothek "C:\MyWS\prima\build\fortran\Debug\primaf.lib" und Objekt "C:\MyWS\prima\build\fortran\Debug\primaf.exp" werden erstellt.
Embedding manifest...
Microsoft (R) Manifest Tool
Copyright (c) Microsoft Corporation.
All rights reserved.
Build log written to "file://C:/MyWS/prima/build/fortran/primaf.dir/Debug/BuildLog.htm"
primaf - 0 error(s), 0 warning(s)
3>------ Erstellen gestartet: Projekt: primac, Konfiguration: Debug x64 ------
3>Building Custom Rule C:/MyWS/prima/c/CMakeLists.txt
3>cl : befehlszeile warning D9002: Unbekannte Option "/fpp" wird ignoriert.
3>cl : befehlszeile warning D9002: Unbekannte Option "/libs:dll" wird ignoriert.
3>cl : befehlszeile warning D9002: Unbekannte Option "/threads" wird ignoriert.
3>cl : befehlszeile warning D9002: Unbekannte Option "/heap-arrays" wird ignoriert.
3>cl : befehlszeile warning D9002: Unbekannte Option "/assume:recursion" wird ignoriert.
3>cl : befehlszeile warning D9002: Unbekannte Option "/debug:full" wird ignoriert.
3>cl : befehlszeile warning D9002: Unbekannte Option "/dbglibs" wird ignoriert.
3>prima.c
3>primac.def : error LNK2001: Nicht aufgelöstes externes Symbol "bobyqa_c".
3>primac.def : error LNK2001: Nicht aufgelöstes externes Symbol "cobyla_c".
3>primac.def : error LNK2001: Nicht aufgelöstes externes Symbol "lincoa_c".
3>primac.def : error LNK2001: Nicht aufgelöstes externes Symbol "newuoa_c".
3>primac.def : error LNK2001: Nicht aufgelöstes externes Symbol "uobyqa_c".
3>C:/MyWS/prima/build/c/Debug/primac.lib : fatal error LNK1120: 5 nicht aufgelöste Externe
3>Die Erstellung des Projekts "primac.vcxproj" ist abgeschlossen -- FEHLER.
4>------ Erstellen gestartet: Projekt: ALL_BUILD, Konfiguration: Debug x64 ------
4>Building Custom Rule C:/MyWS/prima/CMakeLists.txt
5>------ Erstellen gestartet: Projekt: INSTALL, Konfiguration: Debug x64 ------
5>1>
5>-- Install configuration: "Debug"
5>-- Installing: C:/MyWS/prima/install/lib/primaf.lib
5>-- Installing: C:/MyWS/prima/install/bin/primaf.dll
5>-- Installing: C:/MyWS/prima/install/bin/primac.dll
5>-- Installing: C:/MyWS/prima/install/lib/cmake/prima/prima-targets.cmake
5>-- Installing: C:/MyWS/prima/install/lib/cmake/prima/prima-targets-debug.cmake
5>-- Installing: C:/MyWS/prima/install/lib/cmake/prima/prima-config.cmake
5>-- Installing: C:/MyWS/prima/install/lib/cmake/prima/prima-config-version.cmake
5>-- Installing: C:/MyWS/prima/install/include/prima/mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/bobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/bobyqb_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/checkexit_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/cobyla_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/cobylb_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/consts_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/debug_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/evaluate_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/fprint_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/geometry_bobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/geometry_cobyla_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/geometry_lincoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/geometry_newuoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/geometry_uobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/getact_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/history_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/huge_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/infnan_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/infos_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/inf_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/initialize_bobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/initialize_cobyla_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/initialize_lincoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/initialize_newuoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/initialize_uobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/linalg_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/lincoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/lincob_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/memory_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/message_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/newuoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/newuob_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/pintrf_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/powalg_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/preproc_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/ratio_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/redrho_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/rescue_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/selectx_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/shiftbase_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/string_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/trustregion_bobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/trustregion_cobyla_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/trustregion_lincoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/trustregion_newuoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/trustregion_uobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/univar_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/uobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/uobyqb_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/update_bobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/update_cobyla_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/update_lincoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/update_newuoa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/update_uobyqa_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/mod/Debug/xinbd_mod.mod
5>-- Installing: C:/MyWS/prima/install/include/prima/prima.h
========== Erstellen: 4 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========
I've seen in #28 that this was discussed already, I suspect that I'm just not passing the correct build flags. Any ideas?
Hi,
I'm currently trying to wrap PRIMA into a C# interface and, well, building is already an issue. :)
Judging from the CMakeFiles, I thought I'd only have to switch on
BUILD_SHARED_LIBSbut maybe I'm missing something.My output right now is
I've seen in #28 that this was discussed already, I suspect that I'm just not passing the correct build flags. Any ideas?