How to build ETA API static libraries

Regarding the RTS ETA API:

1) What cmake options are required to build the static ETA API libraries

2) What cmake options are required to build the ETA applications (examples, perftools and training) with the static ETA API libraries

Best Answer

  • Jirapongse
    Answer ✓

    @steven.nuzum

    Thank you for reaching out to us.

    I ran the following cmake command on the Linux machine.

    cmake ../ -DBUILD_UNIT_TESTS=OFF 

    I found that the ETA static libraries and examples are built properly.

    1722321775644.png

    1722321887193.png

    I am using RTSDK C/CPP 2.2.1.L1 aka EMA/ETA 3.8.1.L1 aka 3.8.1.0.

    From this information, the static libraries are built by default.

Answers

  • Thanks for your help. I got the static libraries and applications to build on RHEL8. But have an issue building on RHEL9. The build fails with the following messages:
    [100%] Completed 'cjson'
    [100%] Built target cjson
    -- The ASM-ATT compiler identification is GNU
    -- Found assembler: /usr/bin/as
    Prebuilt libraries not found: librssl_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GCC1141/Optimized
    Prebuilt libraries not found: librssl_shared_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GCC1141/Optimized
    Prebuilt libraries not found: librsslJsonConverter_shared_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GCC1141/Optimized
    Prebuilt libraries not found: librsslVA_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GCC1141/Optimized
    Prebuilt libraries not found: librsslVA_shared_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GCC1141/Optimized
    Prebuilt libraries not found: libansi_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Eta/Libs/RHEL_64_GCC1141/Optimized
    -- Skipping Eta Unit Tests Build: BUILD_ETA_UNIT_TESTS:OFF
    -- Skipping Eta Doxygen Build: BUILD_ETA_DOXYGEN:OFF
    Prebuilt libraries not found: libema_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Ema/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Ema/Libs/RHEL_64_GCC1141/Optimized
    Prebuilt libraries not found: libema_shared_LIBRARY_OPTIMIZED-NOTFOUND, in
    /run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Ema/Libs/RHEL_64_GNU1141/Optimized;/run/host/space2/build/RTS/RTSDK-2.2.1.L1.linux.rrg/Cpp-C/Ema/Libs/RHEL_64_GCC1141/Optimized
    -- Skipping Ema Unit Tests Build: BUILD_EMA_UNIT_TESTS:OFF
    -- Skipping Ema Doxygen Build: BUILD_EMA_DOXYGEN:OFF
    -- Configuring incomplete, errors occurred!



  • @steven.nuzum

    RTSDK-2.2.1.L1.linux.rrg supports RHEL9. The libraries are in the RHEL9_64_GCC1141 directory.

    1722397985196.png

    I am not sure why the CMAKE uses the RHEL_64_GCC1141 directory.

    It may relate to the lsb_release binary which is not available in RHEL9. Therefore, I downloaded and installed the lsb_release-3.3-4.fc41.noarch.rpm from the fedora project.

    [root@bcc9512ba21c rtsdk]# lsb_release  -a
    LSB Version:    n/a
    Distributor ID: RedHatEnterprise
    Description:    Red Hat Enterprise Linux 9.4 (Plow)
    Release:        9.4
    Codename:       n/a

    Then, the cmake runs fine.