Link 只有 libc,而不是 C++ 中的 libc++

Link only libc, and not libc++ in C++

clanggcc是否有可能以便携的方式link libstdc++libc++,但仍然 link libc 并使用 C++ 的所有功能(嗯,只有 类)。

-nodefaultlibs 在我第一次测试后似乎不起作用(在 OS X 上测试),它不会 link libstdc++,但它也不起作用t link 和 libSystem,这是必需的。

最好、最便携的解决方案是,不 link 任何默认库,link 一切都手动进行。

添加:

-nodefaultlibs -lc

不会 link 任何东西,然后 link libc。现在你有 C with Classes.

您可以使用 otool -L(在 OS X 上)或 ldd(在 Linux 上)来验证这一点。 在 OSX 上,现在的输出是:

 $ otool -L ./test
   test:
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)

而不是

$ otool -L ./test
  ./test:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)