Support and discussions for Molcas and OpenMolcas users and developers
You are not logged in.
Please note: The forum's URL has changed. The new URL is: https://molcasforum.univie.ac.at. Please update your bookmarks!
You can choose an avatar and change the default style by going to "Profile" → "Personality" or "Display".Hello,
I am trying to compile Luscus 0.8.6 from source in Arch Linux.
My CMake version is 3.19.3, and I am using GNU GCC compilers 10.2.0. I installed all of the required libraries through the pacman package manager.
When I try to make, I get several multiple-definition errors:
[ 67%] Building C object CMakeFiles/luscus.dir/mcube.c.o
[ 70%] Building C object CMakeFiles/luscus.dir/vstring.c.o
[ 72%] Linking C executable luscus
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x0): multiple definition of `n_geometries'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x8): multiple definition of `geo_file_position'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x10): multiple definition of `igeo'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x14): multiple definition of `ivib'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x14): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x18): multiple definition of `iorb'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x18): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x1c): multiple definition of `accept_keys'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x1c): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x20): multiple definition of `move_camera'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gtk_gui.c.o:(.bss+0x30): multiple definition of `move_molecule'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x30): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gv_menubar.c.o:(.bss+0x0): multiple definition of `n_geometries'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gv_menubar.c.o:(.bss+0x8): multiple definition of `geo_file_position'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/gv_menubar.c.o:(.bss+0x10): multiple definition of `igeo'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x10): first defined here
..... etc ...
/usr/bin/ld: CMakeFiles/luscus.dir/mcube.c.o:(.bss+0x14): multiple definition of `ivib'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x14): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/mcube.c.o:(.bss+0x18): multiple definition of `iorb'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x18): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/mcube.c.o:(.bss+0x1c): multiple definition of `accept_keys'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x1c): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/mcube.c.o:(.bss+0x20): multiple definition of `move_camera'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/luscus.dir/mcube.c.o:(.bss+0x30): multiple definition of `move_molecule'; CMakeFiles/luscus.dir/main.c.o:(.bss+0x30): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/luscus.dir/build.make:508: luscus] Error 1
make[1]: *** [CMakeFiles/Makefile2:180: CMakeFiles/luscus.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
I have struggled for a bit trying to set some of these variables to 'extern' in the header files but this only created more problems down the line. I am hoping that someone here who is more experienced with compiling C programs will be able to help!
The output of cmake .. is:
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.7.3")
CMake Deprecation Warning at CMakeLists.txt:3 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for strcasestr
-- Looking for strcasestr - found
-- Looking for strcasecmp
-- Looking for strcasecmp - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/max/Downloads/luscus_0.8.6/build
Last edited by MaxParadiz (2021-02-12 14:48:39)
Offline
Found the solution.
The default "-fcommon" flag changed to "-fno-common" in GCC 10.
This problem is fixed by adding -DCMAKE_C_FLAGS=-fcommon when running cmake.
Offline