我想对用于我的程序的pthread
库进行一些修改。这就是为什么我想链接我自己修改的pthread库。我可以将glibc
中的源代码用于pthread
,修改它并将其用于我的程序。
通常您使用标记-pthread
来链接原始pthread
库。如何在我的makefile中指定链接到我自己的库。
答案 0 :(得分:4)
只需使用-L选项指定自定义库所在的目录,并使用-l选项指定库的名称。 对于Ex:
-L/root/x/mylib -lmypthread
在这种情况下,你的lib名称应该是libmypthread.so
有关详细信息,请参阅http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html。
要确保在执行程序时找到要加载的库,请执行
export LD_LIBRARY_PATH = $(LD_LIBRARY_PATH):/root/x/mylib
答案 1 :(得分:2)
-pthread
相当于-lpthread -D_REENTRANT
和gcc / glibc。您也可以这样做,但使用不同的链接参数(-lname-of-library
)。
答案 2 :(得分:2)
请勿使用-pthread
。它是一个未记录的GCC选项,可能与其他一些(Solaris?)编译器兼容。
glibc中完全没有-D_REENTRANT
启用它-pthread
的定义;没有任何标头依赖于此宏来确保线程安全。 (最后一种机制在1998年从glibc头中删除了!)只需在-lpthread
中链接就足以将glibc函数切换到线程安全模式,-lpthread
可以用你自己的库代替,比如另一个答案说。
答案 3 :(得分:0)
以不同的名称编译库,例如libmypthread.so
并将其放在LD_LIBRARY_PATH
环境变量中包含的一个目录中(或添加新目录)。现在,您可以使用-lmypthread
链接到您的库。