哎呀,剛接觸makefile 和 linux 不久,搞得很多c++的東西都拋諸腦後了,真的慚愧喲。
這是我的檔案目錄(實際開發最好不要這樣命名檔案,否則到之後自己都不知道這些檔案都是幹嘛的)
一開始的源**:
.1 標頭檔案
#include using std::cout;
using std::endl;
extern int value;
void setvalue(int tmp);
.1 原始檔
#include "1.h"
void setvalue(int tmp)
.2 標頭檔案
#include using std::cout;
using std::endl;
extern int value;
void getvalue();
.2 原始檔
#include "2.h"
void getvalue()
.main 檔案
#include #include "1.h"
#include "2.h"
int value;
int main(int argc, char** ar**)
makefile 檔案
src = $(wildcard ./*.c)
obj = $(patsubst %.c, %.o, $(src))
all: main.out
$(obj): $(src)
g++ -c $(src)
main.out: $(obj)
g++ $^ -o $@
這樣編譯過後,直接出現了函式重定義的情況,然後看了下是在鏈結的時候出現的問題,怎麼回事呢?再仔細看看**,main裡面包含了1和2的檔案, 鏈結的時候,又把1和2的檔案鏈結了一遍,所以才會出現這個問題,怎麼解決呢?如果放在windows下面,很快就會反應過來,但是放在linux下面,就是半天反應不過來,確實還是欠些火候,也是技術實力提公升的乙個瓶頸所在吧!下面放**
1的標頭檔案
#ifndef __1_h__
#define __1_h__
#include using std::cout;
using std::endl;
extern int value;
void setvalue(int tmp);
#endif
2的標頭檔案
#ifndef __2_h__
#define __2_h__
#include using std::cout;
using std::endl;
extern int value;
void getvalue();
#endif
其餘的檔案不用改,這些是我把**放在qt(mingw)下面跑了一遍就反應過來了。共勉吧。
就到這裡了,快過年了,提前祝大家新年快樂,心想事成,祝大家在新的一年裡能夠遇到心目中的ta。
記一次面試經歷
今早七點半的巴士從中山趕到廣州面試php開發助理,以前面的都是十來人 幾十人的小公司,不少還是培訓公司,坑的一逼!這次的公司不錯,比較正規,好歹上百人了,只是筆試題做得一般,題目有的雖有學過,但忘了,好吧!這就是沒準備充分的緣故!下面羅列下我還記得的題目 有些漏了就沒辦法了 之後hr面試聊了下,雖然...
記一次重構經歷
起因 最近因為公司內部對各個業務線的使用者業務進行統一剝離,形成使用者中心,所有使用者相關的業務和資料都落地到使用者中心,各個業務線以rpc的的形式依賴使用者中心的服務。結果 因為我的疏忽,造成了兩個bug沒有被測試出來。總結改進 這兩個bug的產生的原因都是因為我錯誤地估計了回歸測試的範圍,我的想...
記一次打包aar經歷
之前維護的乙個直播專案,公司決定抽取其中的直播房間功能給公司的其他專案。因為考慮到使用的功能中包含ui 我們決定使用aar 的方式 jar包中只包含class檔案和清單檔案 專案中library庫在rebuild的完成後,會在build output aar目錄下生成對應的aar檔案。所以首先要做的...