目标文件需要放在不同的目录中
object files need to be placed in different directory
如果有人能帮助我与Makefile错误,我将不胜感激。我想将一个c++应用程序编译成一个共享库,并将编译后的对象*.o
文件放在./sobjs
目录下,如下所示。我遵循了几个例子来做到这一点,但是我仍然有问题,以获得这个正确的编译和链接器。
Makefile:
OBJS = a1.o a2.o a3.o a4.o a5.o
objects = sobj/$(OBJS)
all: $(objects)
$(CXX) $(CXX_FLAGS) $(objects) -shared -o libname.so
$(objects) : | sobjs
sobjs:
@mkdir -p $@
sobjs/%.o: %.cpp
@echo $<
$(CXX) -fPIC -c -o $@ $< $(CXX_FLAGS) $(MY_FLAGS) $(INCLUDE_DIRS)
我犯了一个错误。替换这个
objects = sobj/$(OBJS)
与
objects = $(patsubst %.o, sobjs/%.o,$(OBJS))
,现在可以正确编译文件
相关文章:
- 为测试目标创建具有不同源文件夹的文件
- 如何为包含头文件的目标编写生成文件?
- 制作文件:没有规则来制定目标:如何设置正确的规则?
- 生成文件:6:目标'all'的配方在 Ubuntu-16.04 上失败
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- 使用 Libssh 将文件从服务器复制到客户端:分配文件复制目标路径时出现问题
- C++ 如何将两个 makefile 对象目标规则(位于另一个文件夹中)合并到一个目标/规则中?
- 在目标计算机上访问 POSIX 信号灯时出现可执行文件崩溃(SEGV_MAPERR)
- 如何找到目标文件 *.o 的 ram rom 使用情况(.bss .text .rodata .data)?
- 如何使用cmake从主要的CMakeList.txt复制目标文件?
- 可变参数模板在目标文件中有重复的符号?
- 在 Linux 上,目标文件比在 macOS 或 Windows 上大 2.5 倍
- 为什么即使链接器找到目标文件,我的程序也看不到函数定义?
- 从.o目标文件中提取函数的原始机器代码?
- 使文件目标$(%符号)
- 针对不同生成文件目标的不同变量集
- 如何在不放置任何物理依赖项的情况下指定生成文件目标生成顺序
- extconf.rb:如何根据头文件更改生成生成文件目标
- 通过代码生成,使文件目标始终是最新的
- "Optional"生成文件中的目标文件目标?