C 如何做部分链接?

C 如何做部分链接?,c,static,linker,C,Static,Linker,在我的示例C代码中,我使用mysqlclient连接到MySQL服务器。这是Makefile 幸运的是,我有一些闪电可以击中这个死柱。也许它会活下去 MySQL安装将附带两个库,一个是共享库,一个是静态库。您所需要做的就是显式链接静态库,而不是共享库。不幸的是,mysql\u config在这里可能帮不上忙,所以您必须自己找到它,但它可能位于“/usr/lib/libmysqlclient.a”中。这样做: $(CC) $< -o $@ /usr/lib/libmysqlclient.a

在我的示例C代码中,我使用mysqlclient连接到MySQL服务器。这是Makefile


幸运的是,我有一些闪电可以击中这个死柱。也许它会活下去

MySQL安装将附带两个库,一个是共享库,一个是静态库。您所需要做的就是显式链接静态库,而不是共享库。不幸的是,mysql\u config在这里可能帮不上忙,所以您必须自己找到它,但它可能位于“/usr/lib/libmysqlclient.a”中。这样做:

$(CC) $< -o $@ /usr/lib/libmysqlclient.a `mysql_config --cflags` \
    -lz -lcrypt ...etc...
$(CC)$<-o$@/usr/lib/libmysqlclient.a`mysql\u config--cflags`\
-lz-lcrypt…等。。。
(其中,
…etc.
mysql\u config--libs
发出的所有剩余输出。)


.a
扩展名表示它是一个静态库;我们使用完整的路径名,而不是
-lmysqlclient
,来强制编译器使用静态版本,而不是它通常更喜欢的旁边的动态版本。

幸运的是,我有一些闪电来消除这个死角。也许它会活下去

MySQL安装将附带两个库,一个是共享库,一个是静态库。您所需要做的就是显式链接静态库,而不是共享库。不幸的是,mysql\u config在这里可能帮不上忙,所以您必须自己找到它,但它可能位于“/usr/lib/libmysqlclient.a”中。这样做:

$(CC) $< -o $@ /usr/lib/libmysqlclient.a `mysql_config --cflags` \
    -lz -lcrypt ...etc...
$(CC)$<-o$@/usr/lib/libmysqlclient.a`mysql\u config--cflags`\
-lz-lcrypt…等。。。
(其中,
…etc.
mysql\u config--libs
发出的所有剩余输出。)


.a
扩展名表示它是一个静态库;我们使用完整的路径名,而不是
-lmysqlclient
,来强制编译器使用静态版本,而不是它通常更喜欢的旁边的动态版本。

哪个编译器可能重复?相关编译器不可知:可能与哪个编译器重复?相关编译器不可知:
$(CC) $< -o $@ /usr/lib/libmysqlclient.a `mysql_config --cflags` \
    -lz -lcrypt ...etc...