我知道.so文件是一个类似于Windows中的.dll文件的共享库文件,但是.lo文件怎么样?
我在一个目录中有源代码,在另一个目录中有一个 makefile。我能够使用 make 系统的 vpath 机制编译代码。.o 文件正在生成文件所在的同一文件夹中创建。但我想将这些 .o 文件移动到名为obj. 我尝试了以下方法:
vpath %.o obj
Run Code Online (Sandbox Code Playgroud)
但是,它们仍然在与 makefile 相同的文件夹中创建。谁能帮我解决这个问题?
下面是 makefile 的一些突出显示的行:
PATH_TO_OBJ:- ../obj
SRC :- .c files
OBJS :- $(SRC:.c = .o)
.c.o = $(CC) $(CFLAGS) -c
exe: cc $(LFLAGS) -o $(PATH_TO_OBJ) $(SRC).
Run Code Online (Sandbox Code Playgroud)
在此之后,.o 文件也在 Makefile 的同一文件夹中创建。没有移动到 obj
我在一个文件中调用一个函数
a = fun(a,b);
Run Code Online (Sandbox Code Playgroud)
我在其他文件中使用该函数的#define
#define fun fun1
Run Code Online (Sandbox Code Playgroud)
我在另一个文件中定义该函数
static int fun1(int a, int b)
{
-------------
-------------
}
Run Code Online (Sandbox Code Playgroud)
但编译器投诉
'fun1'已定义但未使用[-Wunused-function]
编译器对此抱怨很奇怪.