我是一个非常新的makefile,我想使用makefile创建目录.我的项目目录是这样的
+--Project
+--output
+--source
+Testfile.cpp
+Makefile
Run Code Online (Sandbox Code Playgroud)
我想将所有对象和输出放入相应的输出文件夹中.我想创建文件夹结构,编译后就像这样.
+--Project
+--output
+--debug (or release)
+--objs
+Testfile.o
+Testfile (my executable file)
+--source
+Testfile.cpp
+Makefile
Run Code Online (Sandbox Code Playgroud)
我尝试了几种选择,但无法成功.请帮我用make文件制作目录.我发布了Makefile供你考虑.
#---------------------------------------------------------------------
# Input dirs, names, files
#---------------------------------------------------------------------
OUTPUT_ROOT := output/
TITLE_NAME := TestProj
ifdef DEBUG
TITLE_NAME += _DEBUG
else
ifdef RELEASE
TITLE_NAME += _RELEASE
endif
endif
# Include all the source files here with the directory tree
SOURCES := \
source/TestFile.cpp \
#---------------------------------------------------------------------
# configs
#---------------------------------------------------------------------
ifdef DEBUG
OUT_DIR := $(OUTPUT_ROOT)debug
CC_FLAGS := -c -Wall
else
ifdef RELEASE …
Run Code Online (Sandbox Code Playgroud) 我想使用Meld解决SVN文件的一些冲突.我正在使用Head版本和我的版本来解决冲突.我无法找到如何进行合并操作并解决冲突.当我右键点击该行时,我只看到复制,粘贴,剪切,向右创建补丁副本,复制到左侧选项.有没有办法做"在我之后复制这条线"或"像我之前复制这条线"那样的?我在Windows上工作时使用了WinMerge.现在我转移到Ubuntu机器并且第一次面对这种情况.请帮助我如何使用Meld解决冲突.
提前致谢
我想使用OpenCV方法在视频文件中进行背景扣除.现在我可以做背景减法,但问题是我无法在彩色模式下获得输出.减去背景后的所有输出都是以灰度颜色模式进行的:(.我想获取前景的颜色信息,这是减去背景后的结果输出.
我可以用掩蔽技术吗?像我正在考虑的以下程序.
InputFrame
(RGB)InputFrame
TempFrame
(以灰度显示:()TempFrame
InputFrame
OutFrame
我很惊讶使用OpenCV进行屏蔽.我只是OpenCV的初学者.请帮助我克服这一点.
提前致谢.
我想生成一个单独的依赖文件,它包含源文件的所有依赖项,使用gcc -M标志通过Makefile.我搜索了这个解决方案但是,提到的所有解决方案都是为多个对象生成多个deps文件.
DEPS = make.dep
$(OBJS): $(SOURCES)
@$(CC) -MM $(SOURCEs) > $(DEPS)
@mv -f $(DEPS) $(DEPS).tmp
@sed -e 's|.$@:|$@:|' < $(DEPS).tmp > $(DEPS)
@sed -e 's/.*://' -e 's/\\$$//' < $(DEPS).tmp | fmt -1 | \
sed -e 's/^ *//' -e 's/$$/:/' >> $(DEPS)
@rm -f $(DEPS).tmp
Run Code Online (Sandbox Code Playgroud)
但它不能正常工作.请告诉我我在哪里弄错了.
我是Makefiles和g ++的新手,我在使用-MM标志生成项目文件的依赖项时遇到了问题.我正在发布我正在使用的Makefile供你考虑.请看一下.
OUTPUT_ROOT := output/
SOURCE_ROOT := source/
TITLE_NAME := TestProj
SOURCES := \
MyFile.cpp \
stdAfx.cpp \
Main.cpp \
OUT_DIR := $(OUTPUT_ROOT)
OUT_O_DIR := $(OUT_DIR)
OBJS = $(SOURCES:%.cpp=$(OUT_O_DIR)%.o)
DEPS = $(OBJS:%.o=%.d)
DIRS = $(subst /,/,$(sort $(dir $(OBJS))))
SOURCE_TARGET = $(SOURCES:%.cpp=$(SOURCE_ROOT)%.cpp)
OUTPUT_TARGET = $(OUT_DIR)$(TITLE_NAME)
#---------------------------------------------------------------------
# executables
#---------------------------------------------------------------------
MD := mkdir -p
RM := rm
CC := g++
#---------------------------------------------------------------------
# rules
#---------------------------------------------------------------------
.PHONY: clean directories objects title
all: directories objects title
directories:
@$(MD) $(DIRS)
clean:
$(RM) -rf $(OUT_DIR)
$(OBJS): $(SOURCE_TARGET) …
Run Code Online (Sandbox Code Playgroud) 我是shell脚本的新手,我一直在努力使用以下shell脚本.我正在发布脚本和我在下面使用的命令供你考虑,请帮我解决我犯的错误.
#
#
#
DBG=0
RLS=0
ALL=0
CLN=0
print_help_uu()
{
echo "Usage: $0 -D -R -A -C ";
echo "Where -C clean the debug project builds";
echo " -D to build in DEBUG config";
echo " -R to build in RELEASE config";
echo " -A to build in both configs";
return
}
#
# Main procedure start here
#
# Check for sufficent args
#
if [ $# -eq 0 ] ; then
print_help_uu
exit 1
fi
#
# Function …
Run Code Online (Sandbox Code Playgroud) 以下是我的示例代码.它只是一个样本,类似于我在我的应用程序中使用的代码.
#define STR_SIZE 32
void someThirdPartyFunc(const char* someStr);
void getString(int Num, const char* myStr)
{
char tempStr[] = "MyTempString=";
int size = strlen(tempStr) + 2;
snprintf((char*)myStr, size, "%s%d", tempStr, Num);
}
int main()
{
const char * myStr = new char(STR_SIZE);
getString(1, myStr); // get the formated string by sending the number
someThirdPartyFunc(myStr); // send the string to the thirdpartyFunction
delete myStr;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用此代码,我会收到异常.我认为问题在于删除"myStr".但删除是非常必要的.
有没有其他方法来格式化getString中的字符串并将其发送到ThirdPartyFunc?
提前致谢.