为什么在Mac OS X上构建UnitTest ++时会得到“ld:in libUnitTest ++。a,archive没有目录”?

时间:2010-12-15 00:44:30

标签: macos archive ld unittest++

下载UnitTest ++版本1.4(来自http://sourceforge.net/projects/unittest-cpp/)并进行制作后,我得到:

$ make
src/AssertException.cpp
src/Test.cpp
src/Checks.cpp
src/TestRunner.cpp
src/TestResults.cpp
src/TestReporter.cpp
src/TestReporterStdout.cpp
src/ReportAssert.cpp
src/TestList.cpp
src/TimeConstraint.cpp
src/TestDetails.cpp
src/MemoryOutStream.cpp
src/DeferredTestReporter.cpp
src/DeferredTestResult.cpp
src/XmlTestReporter.cpp
src/CurrentTest.cpp
src/Posix/SignalTranslator.cpp
src/Posix/TimeHelpers.cpp
Creating libUnitTest++.a library...
src/tests/Main.cpp
src/tests/TestAssertHandler.cpp
src/tests/TestChecks.cpp
src/tests/TestUnitTest++.cpp
src/tests/TestTest.cpp
src/tests/TestTestResults.cpp
src/tests/TestTestRunner.cpp
src/tests/TestCheckMacros.cpp
src/tests/TestTestList.cpp
src/tests/TestTestMacros.cpp
src/tests/TestTimeConstraint.cpp
src/tests/TestTimeConstraintMacro.cpp
src/tests/TestMemoryOutStream.cpp
src/tests/TestDeferredTestReporter.cpp
src/tests/TestXmlTestReporter.cpp
src/tests/TestCurrentTest.cpp
Linking TestUnitTest++...
ld: in libUnitTest++.a, archive has no table of contents
collect2: ld returned 1 exit status
make: *** [TestUnitTest++] Error 1

同事在Mac上没有出现此错误,使用相同版本的gcc(4.2.1)。 (注意:我可以使用libUnitTest ++。由我的同事构建,所以我没有被阻止,但我想解决这个问题。)

我做了一个Google search,听起来ranlib解决了其他类似的问题,但libUnitTest ++。a没有被创建,所以我无法在其上运行ranlib

1 个答案:

答案 0 :(得分:1)

我自己遇到了这个问题,你需要在.a文件中运行ranlib,然后再将其传递给g ++。我用自制的食谱修补了这个,享受:

https://github.com/pdex/homebrew/blob/master/Library/Formula/unittest-cpp.rb