需要您幫助推測makefile。所以,我有什麼和我想要得到什麼。我需要構建兩個可執行文件。源代碼很常見。預處理宏控制兩者的EXE差異,例如,在main.cpp中:投影調試/發佈配置的生成文件
#if PROJECT_TYPE==FTP
std::cout << "FTP" << std::endl;
#else
std::cout << "SFTP" << std::endl;
#endif
差異不僅在源代碼中,而且在該用於連接的附加的庫:
FTP_LDFLAGS= -static-libstdc++ -static-libgcc -s -L $(ROOT_DIR)/lib/Release -l:libboost_thread-mgw46-mt-1_49.a -l:libcommon.a \
-l:libfile.a -l:libfilesearcher.a -l:libftpclient.a -l:libftplib.a -l:libdbclient.a -l:libsqlite3.a -l:libscheduler.a -l:libws2_32.a
SFTP_LDFLAGS= -static-libstdc++ -static-libgcc -s -L $(ROOT_DIR)/lib/Release -l:libboost_thread-mgw46-mt-1_49.a -l:libcommon.a \
-l:libfile.a -l:libfilesearcher.a -l:libdbclient.a -l:libsqlite3.a -l:libscheduler.a -l:libsftpclient.a -l:libws2_32.a -l:libssh.dll
此外,我要創建自己的CXXFLAGS和輸出目錄調試/發佈構建目標,因此在結果得到如下:
TARGETS= ftp_auto_backup sftp_auto_backup
我想使用隱含規則來編譯,水木清華這樣的:
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $< -o $(O_DIR)/[email protected]
但我怎麼能指定單獨O_DIR每個目標INT $(目標),併爲每個生成配置?我的主要問題是在這一步。我可以粘貼我現在擁有的所有makefile,但它仍然不會生成任何東西。以防萬一這裏是:http://pastebin.com/jjB5Ld1s
在此先感謝,夥計們!
你想要建立兩個版本只需一次調用?還是足以能夠建立任一版本? – Beta 2012-04-20 02:33:14
@Beta,如果make將爲每個版本單獨調用,那麼就可以了:make && make debug。 – andryuhat 2012-04-20 02:40:48