g++ makefile簡單書寫


1. value.cpp (C++11完美轉發例子)

#pragma GCC diagnostic error "-std=c++11"     
#include <iostream>  

using namespace std;  

void fun(int &x) { cout << "lvalue ref" << endl; }  
void fun(int &&x) { cout << "rvalue ref" << endl; }  
void fun(const int &x) { cout << "const lvalue ref" << endl; }  
void fun(const int &&x) { cout << "const rvalue ref" << endl; }  

template<typename T>  
void PerfectForward(T &&t) { fun(std::forward<T>(t)); }  

int main(int argc, char* argv[])  
{  
	PerfectForward(10);           // rvalue ref  

	int a;  
	PerfectForward(a);            // lvalue ref  
	PerfectForward(std::move(a)); // rvalue ref  

	const int b = 8;  
	PerfectForward(b);            // const lvalue ref  
	PerfectForward(std::move(b)); // const rvalue ref  

	system("pause");  
	return 0;  
}  

2.makefile

CXXFLAGS += -std=c++11

cc = g++
objects = value.o
exe=value


$(exe):$(objects)
	$(cc) -o value $(objects)

value.o:value.cpp

.PHONY:clean
clean:
	rm value $(objects)

g++ 方式1:

g++ -c value.cpp        // 編譯生成.o文件

g++ -o value value.o   //鏈接生成目標文件

g++方式2:

g++ -o value value.cpp // 直接編譯鏈接一起執行生成目標文件

makefile方式:

在makefile目錄執行 :make

在生成文件目錄執行: ./value


makefile可以參考:

1ASimple Makefile Tutorial

2中文makefile教程




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com