我想这还不简单,链接参数加一个-static不就行了,但接下来解决一系列问题的时间远远超出我的意料
开发环境:
CentOS release 5.8 (Final)
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
问题是由于静态链接mysql库引起的,我链接mysql库的参数是这样写的:
LIB_MYSQL = $(shell mysql_config --libs)
发现静态链接悲剧了,好几百个链接错误,都是undefined,需要krb5库。链接加上krb5库:
LIB_KBR5 = $(shell krb5-config --libs)
最终部分链接参数是这样的:$(LIB_MYSQL) $(LIB_KBR5) $(LIB_THREAD) -static
结果链接器还是报错:
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_get_principal':
(.text+0xfaa): undefined reference to `keyctl_read_alloc'
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_getkeycount':
(.text+0x1129): undefined reference to `keyctl_read'
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_clearcache':
(.text+0x1194): undefined reference to `keyctl_clear'
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_clearcache':
(.text+0x11c1): undefined reference to `keyctl_clear'
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x1692): undefined reference to `request_key'
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':
(.text+0x16bb): undefined reference to `keyctl_read'
/usr/lib64/libkrb5.a(cc_keyring.o): In function `krb5_krcc_resolve':