Skip to content

PCMSolver on Windows #33

Open
Open
@robertodr

Description

@robertodr

It is currenlty not possible to compile the library on Windows, as shown by the failure of the AppVeyor CI builds
There is a problem I cannot clearly understand in the linking stage of the run_pcm.exe executable:

mingw32-make.exe[2]: Entering directory 'C:/projects/pcmsolver/build'
[ 90%] Building CXX object src/bin/CMakeFiles/run_pcm.dir/run_pcm.cpp.obj
cd /d C:\projects\pcmsolver\build\src\bin && C:\software\mingw64\bin\g++.exe    -DENABLE_TIMER -DHAS_CXX11 -DHAS_CXX11_AUTO -DHAS_CXX11_AUTO_RET_TYPE -DHAS_CXX11_CLASS_OVERRIDE -DHAS_CXX11_CONSTEXPR -DHAS_CXX11_CSTDINT_H -DHAS_CXX11_DECLTYPE -DHAS_CXX11_FUNC -DHAS_CXX11_INITIALIZER_LIST -DHAS_CXX11_LAMBDA -DHAS_CXX11_LIB_REGEX -DHAS_CXX11_LONG_LONG -DHAS_CXX11_NOEXCEPT -DHAS_CXX11_NORETURN -DHAS_CXX11_NULLPTR -DHAS_CXX11_RVALUE_REFERENCES -DHAS_CXX11_SIZEOF_MEMBER -DHAS_CXX11_STATIC_ASSERT -DHAS_CXX11_VARIADIC_TEMPLATES -DPCMSolver_EXPORTS -DTAYLOR_CXXIO -D_USE_MATH_DEFINES @CMakeFiles/run_pcm.dir/includes_CXX.rsp -std=c++11 -O3 -DNDEBUG -Wno-unused   -o CMakeFiles\run_pcm.dir\run_pcm.cpp.obj -c C:\projects\pcmsolver\src\bin\run_pcm.cpp
[ 91%] Linking CXX executable ..\..\bin\run_pcm.exe
cd /d C:\projects\pcmsolver\build\src\bin && "C:\Program Files (x86)\CMake\bin\cmake.exe" -E cmake_link_script CMakeFiles\run_pcm.dir\link.txt --verbose=1
"C:\Program Files (x86)\CMake\bin\cmake.exe" -E remove -f CMakeFiles\run_pcm.dir/objects.a
C:\software\mingw64\bin\ar.exe cr CMakeFiles\run_pcm.dir/objects.a @CMakeFiles\run_pcm.dir\objects1.rsp
C:\software\mingw64\bin\g++.exe     -std=c++11 -O3 -DNDEBUG -Wno-unused   -Wl,--whole-archive CMakeFiles\run_pcm.dir/objects.a -Wl,--no-whole-archive  -o ..\..\bin\run_pcm.exe -Wl,--out-implib,..\..\lib\librun_pcm.dll.a -Wl,--major-image-version,0,--minor-image-version,0 @CMakeFiles\run_pcm.dir\linklibs.rsp
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x84): undefined reference to `Input::Input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x10c): undefined reference to `Input::initMolecule()'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x166): undefined reference to `pcm::Meddle::Meddle(Input const&, void (* const&)(char const*))'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x29c): undefined reference to `pcm::Meddle::printInfo() const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x2a4): undefined reference to `pcm::Meddle::getCavitySize() const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x31d): undefined reference to `pcm::Meddle::getCenters() const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x328): undefined reference to `pcm::Meddle::molecule() const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x33b): undefined reference to `computeMEP(Molecule const&, Eigen::Matrix<double, 3, -1, 0, 3, -1> const&)'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x3b2): undefined reference to `pcm::Meddle::setSurfaceFunction(int, double*, char const*) const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x400): undefined reference to `pcm::Meddle::computeASC(char const*, char const*, int) const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x428): undefined reference to `pcm::Meddle::getSurfaceFunction(int, double*, char const*) const'
CMakeFiles\run_pcm.dir/objects.a(run_pcm.cpp.obj):run_pcm.cpp:(.text.startup+0x441): undefined reference to `pcm::Meddle::computeResponseASC(char const*, char const*, int) const'
CMakeFiles

I currently suspect a visibility issue for those symbols, but I currently have no more time to invest on this.
The playground for this is the fix-appveyor branch

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions