如何将命令库中的C++库链接起来 我正在制作一个C++库,它有多个头,所有的头都有一个.h,.cp,.o文件,如何使这个库链接起来,这样用户就可以编译它:g++Me.CPP-O二进制文件-L LableAlnNeMy/
如何使库可链接 像这样:如何将命令库中的C++库链接起来 我正在制作一个C++库,它有多个头,所有的头都有一个.h,.cp,.o文件,如何使这个库链接起来,这样用户就可以编译它:g++Me.CPP-O二进制文件-L LableAlnNeMy/,c++,command-line,compilation,linker,C++,Command Line,Compilation,Linker,如何使库可链接 像这样: ar ruv libraryName.a foo.o bar.o baz.o 这最好通过编写一个Makefile来实现,它将为您自动化构建过程。大概是这样的: all: libraryName.a clean: rm -f *.o # important: use TAB, not spaces for indentation here. SRCS = foo.cpp bar.cpp baz.cpp OBJS = ${SRCS:.cpp=.o}
ar ruv libraryName.a foo.o bar.o baz.o
这最好通过编写一个Makefile来实现,它将为您自动化构建过程。大概是这样的:
all: libraryName.a
clean:
rm -f *.o # important: use TAB, not spaces for indentation here.
SRCS = foo.cpp bar.cpp baz.cpp
OBJS = ${SRCS:.cpp=.o}
libraryName.a: ${OBJS}
注意:要使用libraryName.a,请执行以下操作:
g++ -o exename main.cpp -lbraryName
但这并不需要名为liblibraryName的库:
我发现最好的方法是花几个月的时间学习GNU工具链:如何使用autoconf、automake和libtool。libtool将负责此功能,但为了有效地使用它,您还需要autoconf和automake。您始终可以使用适当的选项运行ld,并自己构建共享库,但libtool会处理许多其他细节,这些细节会让您陷入困境,直到您正确完成为止。学习如何使用libtool。祝你好运。谢谢@EmployeedRussian。ruv中的“u”是什么意思?因为当我尝试时,它说:'u'修饰符被忽略,因为'D'是默认值,请参见'u'
g++ -o exename main.cpp -l libraryName