[[[ CentOS 7 ]]] package 'perl-libs' contains 'libperl.so' but not 'libperl.a', not available in any official packages thus, RPerl subcompile link mode must be 'dynamic' and not 'static', due to missing 'libperl.a' file [ a00; RPerl v3.601_000 automatic; dynamic link; no ldconfig for libperl.so; DEFAULT BEHAVIOR ] unsuccessful compile $ rperl -V -D ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.pl g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 /bin/ld: cannot find -lperl collect2: error: ld returned 1 exit status [ a01; RPerl v3.601_000 automatic; dynamic link; yes ldconfig for libperl.so ] unsuccessful compile $ ldconfig -p | grep perl 196: libperl.so (libc6,x86-64) => /home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE/libperl.so $ rperl -V -D ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.pl g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 /bin/ld: cannot find -lperl collect2: error: ld returned 1 exit status [ a02; RPerl v3.601_000 automatic; static link; no ldconfig for libperl.so ] unsuccessful compile $ rperl -V -D --static ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.pl g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -static -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 -lcrypt /bin/ld: cannot find -lperl /bin/ld: cannot find -lcrypt /bin/ld: cannot find -lstdc++ /bin/ld: cannot find -lm /bin/ld: cannot find -lpthread /bin/ld: cannot find -lc collect2: error: ld returned 1 exit status [ a03; RPerl v3.601_000 automatic; static link; yes ldconfig for libperl.so ] unsuccessful compile $ ldconfig -p | grep perl 196: libperl.so (libc6,x86-64) => /home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE/libperl.so $ rperl -V -D --static ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.pl g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -static -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 -lcrypt /bin/ld: cannot find -lperl /bin/ld: cannot find -lcrypt /bin/ld: cannot find -lstdc++ /bin/ld: cannot find -lm /bin/ld: cannot find -lpthread /bin/ld: cannot find -lc collect2: error: ld returned 1 exit status [ m00; RPerl v3.601_000 manual; dynamic link; add -Wl,-rpath,/DIR_OF_libperl.so; no ldconfig for libperl.so ] $ ldconfig -p | grep perl $ g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" -Wl,-E -Wl,-rpath,/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 /bin/ld: cannot find -lperl collect2: error: ld returned 1 exit status [ m01; RPerl v3.601_000 manual; dynamic link; add -Wl,-rpath,/DIR_OF_libperl.so; yes ldconfig for libperl.so ] unsuccessful compile $ ldconfig -p | grep perl 196: libperl.so (libc6,x86-64) => /home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE/libperl.so $ g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" -Wl,-E -Wl,-rpath,/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 /bin/ld: cannot find -lperl collect2: error: ld returned 1 exit status [ m02; RPerl v3.601_000 manual; dynamic link; add -L"/DIR_OF_libperl.so"; add -Wl,-rpath,/DIR_OF_libperl.so; no ldconfig for libperl.so ] successful compile $ g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" -L"/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" -Wl,-E -Wl,-rpath,/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 successful execution $ ldconfig -p | grep perl $ ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world Hello, World! [ m03; RPerl v3.601_000 manual; dynamic link; add -L"/DIR_OF_libperl.so"; no ldconfig for libperl.so ] successful compile $ g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" -L"/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 unsuccessful execution $ ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory [ m04; RPerl v3.601_000 manual; dynamic link; add -L"/DIR_OF_libperl.so"; yes ldconfig for libperl.so ] root, enable ldconfig # vi /etc/ld.so.conf.d/perl-x86_64.conf #/usr/lib64/perl5/CORE/ # DISABLED, system Perl /home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE/ # ENABLED, special Perl # ldconfig # ldconfig -p | grep perl libperl.so (libc6,x86-64) => /home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE/libperl.so use already-compiled executable from m03 step OR successful compile, same command as m03 step $ g++ -pthread -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/home/FOO/BAR/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -xc++ -I"/home/builder/perl5" -I"/home/builder/perl5/lib/perl5" -Ilib -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/include" -I"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-JPCRE2/include" -Wno-unused-variable -DNO_XSLOCKS -Wno-deprecated -std=c++11 -Wno-reserved-user-defined-literal -Wno-literal-suffix -L"/home/builder/perl5/lib/perl5/x86_64-linux/auto/share/dist/Alien-PCRE2/lib" -D__CPP__TYPES -D__TYPE__INTEGER__LONG -D__TYPE__NUMBER__DOUBLE -O3 -fomit-frame-pointer -march=native -g -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC "-I/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" -L"/home/FOO/BAR/lib/perl5/5.22.1/x86_64-linux/CORE" perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world.cpp -o perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world -lperl -lpcre2-8 -lpcre2-16 -lpcre2-32 successful execution $ ./perl5/lib/perl5/RPerl/Learning/Chapter1/exercise_1-hello_world Hello, World!