C++ OSX上的FastFormat

C++ OSX上的FastFormat,c++,fastformat,C++,Fastformat,读了一点FastFormat之后,我决定下载它并安装在我的MacBookPro上,运行OSX10.8。我成功地构建了FastFormat,并运行了性能测试。然后我写了一个小测试来检查它是否有效: #include <cstdlib> #include <fastformat/fastformat.hpp> #include <fastformat/sinks/ostream.hpp> int main() { return EXIT_SUCCESS;

读了一点FastFormat之后,我决定下载它并安装在我的MacBookPro上,运行OSX10.8。我成功地构建了FastFormat,并运行了性能测试。然后我写了一个小测试来检查它是否有效:

#include <cstdlib>
#include <fastformat/fastformat.hpp>
#include <fastformat/sinks/ostream.hpp>

int main()
{
    return EXIT_SUCCESS;
}
我试图通过手动定义
unix
PLATFORMSTL\u OS\u IS\u unix
来抑制这些错误,但随后我收到这些链接器错误:

Undefined symbols for architecture x86_64:
  "_fastformat_exitProcess", referenced from:
      fastformat::fastformat_initialiser::fastformat_initialiser() in ccMqErni.o
  "_fastformat_getInitCodeString", referenced from:
      fastformat::fastformat_initialiser::record_init_failure_(int)    in ccMqErni.o
  "_fastformat_init", referenced from:
      fastformat::fastformat_initialiser::fastformat_initialiser() in ccMqErni.o
  "_fastformat_uninit", referenced from:
      fastformat::fastformat_initialiser::~fastformat_initialiser() in ccMqErni.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

OS X上是否支持FastFormat,如果支持,我做错了什么?

Mac OS X不提供
UNIX
(或
UNIX
\uuuuuuUnix
\uuuuUnix
)宏,而
PlatformSTL
尝试检测该宏。在
platformstl.h
中添加了
defined(\uuu MACH\uuu)
语句后,我能够编译您的示例,如下所示(第154行):

要消除未定义符号错误,可以定义宏
FASTFORMAT\u NO\u AUTO\u INIT


g++-I-DFASTFORMAT\u NO\u AUTO\u INIT main.cpp
Mac OS X不提供
UNIX
(或
UNIX
\uuunix
\uunix
)宏,而
PlatformSTL
试图检测该宏。在
platformstl.h
中添加了
defined(\uuu MACH\uuu)
语句后,我能够编译您的示例,如下所示(第154行):

要消除未定义符号错误,可以定义宏
FASTFORMAT\u NO\u AUTO\u INIT


g++-I-DFASTFORMAT\u NO\u AUTO\u INIT main.cpp

谢谢!我想STLSoft现在与OSX兼容了。谢谢!我想STLSoft现在与OSX兼容了。
Undefined symbols for architecture x86_64:
  "_fastformat_exitProcess", referenced from:
      fastformat::fastformat_initialiser::fastformat_initialiser() in ccMqErni.o
  "_fastformat_getInitCodeString", referenced from:
      fastformat::fastformat_initialiser::record_init_failure_(int)    in ccMqErni.o
  "_fastformat_init", referenced from:
      fastformat::fastformat_initialiser::fastformat_initialiser() in ccMqErni.o
  "_fastformat_uninit", referenced from:
      fastformat::fastformat_initialiser::~fastformat_initialiser() in ccMqErni.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
#if defined(unix) || \ 
    defined(UNIX) || \ 
    defined(__unix__) || \ 
    defined(__unix) || \ 
    defined(__MACH__) 
# define PLATFORMSTL_OS_IS_UNIX