在投影生成文件方面需要您的帮助。所以,我有什么,我想得到什么。我需要构建两个可执行文件。源代码很常见。预处理器宏控制两个 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)/$@
但是如何为每个目标 int $(TARGETS) 和每个构建配置指定单独的 O_DIR?我的主要问题是在这一步。我可以粘贴我现在拥有的所有 makefile,但它仍然不会构建任何东西。以防万一它是: http: //pastebin.com/jjB5Ld1s
提前谢谢各位!