我想這個端口logging語句的工作,所以它會在linux上運行和Android我#define'ing它:__android_log_print等值的printf
__android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
我已經交叉編譯我的應用程序上運行Linux和Android。但是,由於linux沒有相應的功能,我試圖自己做。
/** ANDROID */
#if defined(__ANDROID__)
#include <android/log.h>
#define LOG_ERROR ANDROID_LOG_ERROR
#define LOG(PRIORITY, fmt, ...) __android_log_print(ANDROID_LOG_UNKNOWN, LOG_TAG, fmt, ##__VA_ARGS__)
/** LINUX */
#elif defined(linux) || defined(__linux) || defined(__linux__)
#define LOG_ERROR LINUX_LOG_ERROR
#define LOG(PRIORITY, fmt, ...) printf(PRIORITY fmt, ##__VA_ARGS__)
#endif
然後在linux下
LOG(LOG_ERROR, "Testing loggging [ %d ]", test);
運行時,使用它像這樣有沒有更好的方式來做到這一點?
非常感謝您的任何建議,
爲什麼'do {...} while(0)'循環呢? – Oliv
爲什麼你首先定義LOGGING然後LOG? – Oliv