Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 试图编译卡萨布兰卡代码时使文件不起作用_Makefile - Fatal编程技术网

Makefile 试图编译卡萨布兰卡代码时使文件不起作用

Makefile 试图编译卡萨布兰卡代码时使文件不起作用,makefile,Makefile,我的应用程序使用卡萨布兰卡进行REST通信,我是第一次使用它。如果我使用下面的简单行来编译没有问题 g++-std=c++11 main.cpp x1.cpp x3.cpp x2.cpp-o myfile-lboost_system-lcrypto-lssl-lcpprest 但我尝试为上述内容编写一个makefile(我是第一次编写),如下所示: CXX := g++ CXXFLAGS := -std=c++11 LDFLAGS := -L/usr/lib/x86_64-linux

我的应用程序使用卡萨布兰卡进行REST通信,我是第一次使用它。如果我使用下面的简单行来编译没有问题

g++-std=c++11 main.cpp x1.cpp x3.cpp x2.cpp-o myfile-lboost_system-lcrypto-lssl-lcpprest

但我尝试为上述内容编写一个makefile(我是第一次编写),如下所示:

CXX      := g++
CXXFLAGS := -std=c++11
LDFLAGS  := -L/usr/lib/x86_64-linux-gnu/ -lboost_system -lcrypto -lssl -lcpprest
BUILD    := build
OBJ_DIR  := $(BUILD)/objects
APP_DIR  := $(BUILD)/apps
TARGET   := fdvdapp
INCLUDE  := -Iinclude/
SRC      := $(wildcard *.cpp)


OBJECTS := $(SRC:%.cpp=$(OBJ_DIR)/%.o)

all: build $(TARGET)

$(OBJ_DIR)/%.o: %.cpp
    @mkdir -p $(@D)
    $(CXX) $(CXXFLAGS) $(INCLUDE) -o $@ -c $<

$(TARGET): $(OBJECTS)
    @mkdir -p $(@D)
    $(CXX) $(CXXFLAGS) $(INCLUDE) $(LDFLAGS) -o $(APP_DIR)/$(TARGET) $(OBJECTS)

.PHONY: all build clean

build:
    @mkdir -p $(APP_DIR)
    @mkdir -p $(OBJ_DIR)

clean:
    rm -rf build/*
CXX:=g++
CXXFLAGS:=-std=c++11
LDFLAGS:=-L/usr/lib/x86_64-linux-gnu/-lboost_system-lcrypto-lssl-lcpprest
构建:=构建
对象目录:=$(构建)/对象
应用程序目录:=$(构建)/应用程序
目标:=fdvdapp
包括:=-i包括/
SRC:=$(通配符*.cpp)
对象:=$(SRC:%.cpp=$(OBJ_DIR)/%.o)
全部:生成$(目标)
$(对象目录)/%.o:%.cpp
@mkdir-p$(@D)
$(CXX)$(CXXFLAGS)$(包括)-o$@-c$<
$(目标):$(对象)
@mkdir-p$(@D)
$(CXX)$(CXXFLAGS)$(包括)$(LDFLAGS)-o$(应用程序目录)/$(目标)$(对象)
.骗子:一切都要干净利落
建造:
@mkdir-p$(应用程序目录)
@mkdir-p$(OBJ_DIR)
清洁:
rm-rf构建/*
上面所述使dosent似乎起作用了,因为我得到了所有使用的库的未定义的引用错误


有什么问题吗?

指向LDFLAGS:=-L/usr/lib/x86\u 64-linux-gnu-lboost\u system-lcrypto-lssl-lcpprest您是否尝试更改此行
$(CXX)$(cxflags)$(INCLUDE)$(LDFLAGS)-o$(APP\u DIR)/$(TARGET)$(OBJECTS)
,即将
$(OBJECTS)
移到
$(APP DIR)
部分之前?也许这会有帮助…您是否也可以添加错误的输出?所以我们知道,你的链接器在抱怨什么……你的所有包含文件都在文件夹
include/
中还是在子文件夹中?