Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • amuse amuse
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • AxioDL
  • amuseamuse
  • Issues
  • #6

Closed
Open
Created Sep 26, 2020 by TomM@derselbst

amuse is hard to compile

I was delighted to see that amuse is still under active development. But guys, you really have to make the compilation process more convenient. I've spent over one hour just for getting the command line tools compiled. I failed to compile the QT UI. You should really consider to set up some kind of CI build pipeline.

Following is a list of problems when compiling with GCC 7.5.0 and CMake 3.17.0 on OpenSUSE 15.2

1. C++20 is required, although it hasn't been released and doesn't even seem to be required. C++17 is fine.

-- CXX_STANDARD: 20
-- Performing Test has_std_2a_flag
CMake Error in amuse/build/CMakeFiles/CMakeTmp/CMakeLists.txt:
  Target "cmTC_7d4f0" requires the language dialect "CXX20" (with compiler
  extensions), but CMake does not know the compile flags to use to enable it.

2. ??

CMake Error at /usr/share/cmake/Modules/WriteBasicConfigVersionFile.cmake:43 (message):
  No VERSION specified for WRITE_BASIC_CONFIG_VERSION_FILE()
Call Stack (most recent call first):
  /usr/share/cmake/Modules/CMakePackageConfigHelpers.cmake:225 (write_basic_config_version_file)
  boo/logvisor/CMakeLists.txt:45 (write_basic_package_version_file)

3. Unknown command "bintoc"

No clue how to fix that. Had to comment out the qt UI.

-- Enabling Vulkan support
-- Found LLVM: /usr (found version "9.0.1") 
-- Qt5 found, amuse-gui will be built
CMake Error at Editor/platforms/freedesktop/CMakeLists.txt:17 (bintoc):
  Unknown CMake command "bintoc".
Call Stack (most recent call first):
  Editor/CMakeLists.txt:126 (declare_qticon_target)

4. DBus is actually required, but isn't marked REQUIRED in Cmake

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
amuse/boo/DBUS_ARCH_INCLUDE_DIR
   used as include directory in directory amuse/boo
amuse/boo/DBUS_INCLUDE_DIR
   used as include directory in directory amuse/boo
DBUS_LIBRARY
    linked by target "boo" in directory amuse/boo

5. Clang AST is required, but it's not checked by cmake

amuse/athena/atdna/main.cpp:8:10: fatal error: clang/AST/ASTConsumer.h: file not found
 #include <clang/AST/ASTConsumer.h>

Why is that even needed for amuse??

6. Various clang libraries are not found, though installed. Have you added their LIBRARY_DIRS to the linker search path?

This happened when clang9 was installed. Removing it, leaving only libclang7 on the system solved it.

[  5%] Linking CXX executable atdna
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangFrontend
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangTooling
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangDriver
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangSerialization
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangParse
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangSema
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangAnalysis
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangEdit
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangAST
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangLex
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lclangBasic
collect2: error: ld returned 1 exit status

7. You link against libcurses when compiling ATDNA, although it's not even needed

/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lcurses
collect2: error: ld returned 1 exit status

8. You require pulseaudio, but cmake doesn't check for it

amuse/boo/lib/audiodev/PulseAudio.cpp:7:10: fatal error: pulse/pulseaudio.h: Datei oder Verzeichnis nicht gefunden
 #include <pulse/pulseaudio.h>

9. You require udev, but cmake doesn't check for it

amuse/boo/lib/inputdev/HIDDeviceUdev.cpp:14:10: fatal error: libudev.h: Datei oder Verzeichnis nicht gefunden
 #include <libudev.h>



...Trying to compile with clang fails:

[  5%] Linking CXX executable atdna
/usr/bin/ld: CMakeFiles/atdna.dir/main.cpp.o: undefined reference to symbol '_ZSt20__throw_length_errorPKc@@GLIBCXX_3.4'
/usr/bin/ld: /usr/bin/../lib64/gcc/x86_64-suse-linux/7/../../../../lib64/../lib64/libstdc++.so.6: error adding symbols: DSO missing from command line
clang-7.0.1: error: linker command failed with exit code 1 (use -v to see invocation)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking