I'm getting the following error:

[100%] Linking C executable lagrange

/usr/bin/ld: lib/harfbuzz/libharfbuzz.a(harfbuzz.cc.o): relocation R_X86_64_32S against `.data' can not be used when making a PIE object; recompile with -fPIE

collect2: error: ld returned 1 exit status

make[2]: *** [CMakeFiles/app.dir/build.make:1021: lagrange] Error 1

make[1]: *** [CMakeFiles/Makefile2:120: CMakeFiles/app.dir/all] Error 2

make: *** [Makefile:130: all] Error 2

What do I do?

Posted in: s/Lagrange
🚀 zorg

2024-02-04 · 2 years ago

3 Comments ↓

🎵 xavi · 2024-02-05 at 11:35:

This is an usual error message when C compilers are mixed. For example, some object files are built with gcc, whereas others are built with clang, or viceversa.

Could you please make sure that the same C compiler was used to build all objects?

🚀 zorg [OP] · 2024-02-05 at 19:43:

I have both gcc and clang. How do I make sure that only one is used?

🎵 xavi · 2024-02-06 at 15:30:

Make sure to clean your build first (e.g.: with `make clean` or `ninja clean`, depending on which generator was chosen from CMake), then build with `cmake --build <build-dir> -v -j$(nproc --all)`.