今天寫了乙個makefile檔案,沒想到各種坑。先記錄下來,慢慢修改
1、最開始版本
cc:= g++
target:= threadpool
include:= -i./
libs:= -lpthread
# c++語言編譯引數
cxxflags:= -std=c++11 -g -wall -d_reentrant
# c預處理引數
# cppflags:=
objects:= thread_pool.o main.o
$(target):$(objects)
$(cc) -c $(target) $(objects) $(libs)
# $@表示所有目標集
%.o:%.cpp
$(cc) -c $(cxxflags) $(include)$< .o $@
.phony:clean
clean:
-rm -f $(objects) $(target)
g++: error: .o: 沒有那個檔案或目錄
g++: error: thread_pool.o: 沒有那個檔案或目錄
g++: fatal error: no input files
compilation terminated.
makefile:15: recipe for target 'thread_pool.o' failed
make: *** [thread_pool.o] error 1
粗心寫錯了幾處,這是修正後的版本:
cc := g++
target := threadpool
include := -i./
libs := -lpthread
# c++語言編譯引數
cxxflags:= -std=c++11 -g -wall -d_reentrant
# c預處理引數
# cppflags:=
objects:= thread_pool.o main.o
$(target):$(objects)
$(cc) -o $(target) $(objects) $(libs)
# $@表示所有目標集
%.o:%.cpp
$(cc) -c $(cxxflags) $(include) $< -o $@
.phony:clean
clean:
-rm -f $(objects) $(target)
2、cannot declare variable 『taskobj』 to be of abstract type 『cmytask』
cmytask taskobj;
出現這個錯一定是子類和父類中的虛函式沒有匹配成功,檢查函式名字和引數等。而且下面會有錯誤提示
常見編譯錯誤(更新中 )
include using namespace std int main 1 已啟動生成 專案 hello1,配置 debug win32 1 hello1.cpp 1 msvcrtd.lib crtexew.obj error lnk2019 無法解析的外部符號 winmain 16,該符號在函式...
mk編譯錯誤
要在工程 中加乙個巨集去控制 在config.mk中定義這個巨集 enable it6263 1 在compile option.mk中根據這個值來定義巨集 ifeq enable it6263 1 cc opts denable it6263 1 else cc opts denable it62...
Greta 編譯錯誤
背景 greta2.6.4在vs2008編譯通過,在vs2013中,編譯出現以下錯誤 1 regexpr2.cpp 1 c users administrator desktop greta greta restack.h 56 error c2332 struct 缺少標記名 1 c users ...