多執行緒中編譯錯誤

2021-08-21 04:48:07 字數 1406 閱讀 2378

今天寫了乙個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 ...