2
我需要一個非常簡單的makefile來編譯共享對象庫文件(* .so)。我還需要知道如何傳遞優化參數,如-O2和-O3。我試圖用谷歌搜索簡單的例子,但所有的例子都是扭曲的。用於編譯共享對象庫文件的簡單makefile
我不需要創建任何類似* .so.1.0的版本,只需要一個簡單的* .so文件。我的項目將有多個文件,所以我需要一個編譯多個文件的例子。
我需要一個非常簡單的makefile來編譯共享對象庫文件(* .so)。我還需要知道如何傳遞優化參數,如-O2和-O3。我試圖用谷歌搜索簡單的例子,但所有的例子都是扭曲的。用於編譯共享對象庫文件的簡單makefile
我不需要創建任何類似* .so.1.0的版本,只需要一個簡單的* .so文件。我的項目將有多個文件,所以我需要一個編譯多個文件的例子。
,我能想到的最簡單的makefile你想要做什麼:
CXXFLAGS += -fPIC
CXXFLAGS += -O3
x.so: x.o y.o
g++ -shared $^ -o [email protected]
在備選方案中,您可能需要使用更多的make的內置規則和變量:
CXXFLAGS += -fPIC
CXXFLAGS += -O3
x.so: x.o y.o
$(LINK.cc) -shared $^ $(LOADLIBES) $(LDLIBS) -o [email protected]
你不需要在調用中明確引用'CXXFLAGS'嗎?另外,爲什麼'g ++'而不是'$(CXX)'? –
這就是我正在尋找的。謝謝。 – pythonic
@KerrekSB 1)編號CXXFLAGS被用於隱含的'%.o:%.cc'規則。 2)簡單易懂。但我已經添加了你建議的替代方案。 –