我正在尝试构建一个依赖于二进制分布式静态库的项目。
链接器抱怨它找不到ini_config函数,其中包括:
config_params.c:(.text+0x16f): undefined reference to `ini_get_config_valueobj'
它找到动态库,但找不到静态版本:
attempt to open /usr/lib/gcc/x86_64-linux-gnu/7/libini_config.a failed
attempt to open /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu
在布莱恩·高夫( Brian )的“gcc的Introduction”一书的第14页,作者想要显示一个链接器错误,原因是没有向gcc提供libm库,函数sqrt的代码驻留在该库中:
$ gcc -Wall calc.c -o calc
/tmp/ccbR6Ojm.o: In function ‘main’:
/tmp/ccbR6Ojm.o(.text+0x19): undefined reference to ‘sqrt’
文件calc.c (调用sqrt函数的地方)如下:
#include <math.h>
#include <stdio.h>
int main (v
我有两个文件:
lib.c
#include<stdio.h>
void hi() {
printf("Hi i'm a library function in lib.so\n");
}
和主。c
#include<stdio.h>
#include<dlfcn.h>
/* based on Jeff Scudder's code */
int main() {
void *SharedObjectFile;
void (*hi)();
// Load the shared libary;
Shar