を発生し、私は次のように共有ライブラリを作った:私は共有ライブラリを作るときに、エラーが
gcc -c output.c
gcc -shared -fPIC -o liboutput.so output.o
をoutput.cがフォローされたとき、それは仕事ができます。
//#include "output.h"
#include <stdio.h>
int output(const char* st) {
return 1+2;
}
ただし、output.cを次のように変更すると、エラーが発生します。
//#include "output.h"
#include <stdio.h>
int output(const char* st) {
printf("%s\n", st);
return 1+2;
}
これはエラーメッセージです:
/usr/bin/ld: output.o: relocation R_X86_64_PC32 against undefined 符号 `[email protected]@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: 最后的链结失败: 错误的值 collect2: error: ld returned 1 exit status
は私がなぜ、どのようにそれを対処するために知ってほしいです。前もって感謝します。
うまくいく可能性があります。誠実にあなたの答えをありがとう。 –