CUnit - 尝试使用makefile或gcc构建时出错

时间:2014-11-25 15:12:02

标签: linux compiler-errors makefile cunit

所以我去了website下载CUnit框架。我使用以下命令将文件夹下载到我的Downloads文件夹中。我收到了很多错误,如下所示。任何帮助都会很棒。为我分解我是一个Linux菜鸟。

tar -xvf CUnit-2.1-3.tar.bz2

cd CUnit-2.1-3/
autoreconf --install
./configure
make
sudo make install
cd Examples/
make ExampleTests

然后我收到以下错误:

gcc -DRELEASE=@RELEASE@ -Wall -W -pedantic -Wshadow -ansi -I/home/renagade629/Downloads/CUnit-2.1-3/CUnit/Headers -std=c99  -L/home/renagade629/Downloads/CUnit-2.1-3/CUnit/Sources  ExampleTests.c   -o ExampleTests
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/ccJcTm0I.o: In function `testSuccess1':
ExampleTests.c:(.text+0x5e): undefined reference to `CU_assertImplementation'
/tmp/ccJcTm0I.o: In function `testSuccess2':
ExampleTests.c:(.text+0x9a): undefined reference to `CU_assertImplementation'
/tmp/ccJcTm0I.o: In function `testSuccess3':
ExampleTests.c:(.text+0xd6): undefined reference to `CU_assertImplementation'
/tmp/ccJcTm0I.o: In function `testSuiteFailure1':
ExampleTests.c:(.text+0x112): undefined reference to `CU_assertImplementation'
/tmp/ccJcTm0I.o: In function `testSuiteFailure2':
ExampleTests.c:(.text+0x14e): undefined reference to `CU_assertImplementation'
/tmp/ccJcTm0I.o:ExampleTests.c:(.text+0x18a): more undefined references to `CU_assertImplementation' follow
/tmp/ccJcTm0I.o: In function `AddTests':
ExampleTests.c:(.text+0x14b9): undefined reference to `CU_get_registry'
ExampleTests.c:(.text+0x14e6): undefined reference to `CU_is_test_running'
ExampleTests.c:(.text+0x151a): undefined reference to `CU_register_suites'
ExampleTests.c:(.text+0x1523): undefined reference to `CU_get_error_msg'
collect2: error: ld returned 1 exit status
make: *** [ExampleTests] Error 1

我还尝试使用GCC手动编译它,如下所示

    gcc -Wall -I/Downloads/CUnit-2.1-3/CUnit/Headers ExampleTests.c -o ExampleTests -lcunit

它给了我这个错误(不确定为什么因为.h文件存在):

Unit-2.1-3/CUnit/Headers ExampleTests.c -o ExampleTests -lcunit
ExampleTests.c:26:19: fatal error: CUnit.h: No such file or directory
 #include "CUnit.h"
                   ^
compilation terminated.

下面是我的CUnit目录的树

 tree
.
├── aclocal.m4
├── AUTHORS
├── autom4te.cache
│   ├── output.0
│   ├── output.1
│   ├── output.2
│   ├── output.3
│   ├── requests
│   ├── traces.0
│   ├── traces.1
│   ├── traces.2
│   └── traces.3
├── bootstrap
├── ChangeLog
├── compile
├── config.guess
├── config.h
├── config.h.in
├── config.h.in~
├── config.log
├── config.status
├── config.sub
├── configure
├── configure.in
├── COPYING
├── CUnit
│   ├── CUnit.dsp
│   ├── Headers
│   │   ├── Automated.h
│   │   ├── Basic.h
│   │   ├── Console.h
│   │   ├── CUCurses.h
│   │   ├── CUError.h
│   │   ├── CUnit.h
│   │   ├── CUnit.h.in
│   │   ├── CUnit_intl.h
│   │   ├── Jamfile
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── MyMem.h
│   │   ├── TestDB.h
│   │   ├── TestRun.h
│   │   ├── Util.h
│   │   └── wxWidget.h
│   ├── Jamfile
│   ├── Makefile
│   ├── Makefile.am
│   ├── Makefile.in
│   └── Sources
│       ├── Automated
│       │   ├── Automated.c
│       │   ├── Automated.lo
│       │   ├── Automated.o
│       │   ├── libcunitautomated.la
│       │   ├── Makefile
│       │   ├── Makefile.am
│       │   └── Makefile.in
│       ├── Basic
│       │   ├── Basic.c
│       │   ├── Basic.lo
│       │   ├── Basic.o
│       │   ├── libcunitbasic.la
│       │   ├── Makefile
│       │   ├── Makefile.am
│       │   └── Makefile.in
│       ├── Console
│       │   ├── Console.c
│       │   ├── Console.lo
│       │   ├── Console.o
│       │   ├── libcunitconsole.la
│       │   ├── Makefile
│       │   ├── Makefile.am
│       │   └── Makefile.in
│       ├── Curses
│       │   ├── Curses.c
│       │   ├── Makefile
│       │   ├── Makefile.am
│       │   └── Makefile.in
│       ├── Framework
│       │   ├── CUError.c
│       │   ├── CUError.lo
│       │   ├── CUError.o
│       │   ├── libcunitfmk.la
│       │   ├── Makefile
│       │   ├── Makefile.am
│       │   ├── Makefile.in
│       │   ├── MyMem.c
│       │   ├── MyMem.lo
│       │   ├── MyMem.o
│       │   ├── TestDB.c
│       │   ├── TestDB.lo
│       │   ├── TestDB.o
│       │   ├── TestRun.c
│       │   ├── TestRun.lo
│       │   ├── TestRun.o
│       │   ├── Util.c
│       │   ├── Util.lo
│       │   └── Util.o
│       ├── libcunit.la
│       ├── Makefile
│       ├── Makefile.am
│       ├── Makefile.in
│       ├── Test
│       │   ├── Jamfile
│       │   ├── Makefile
│       │   ├── Makefile.am
│       │   ├── Makefile.in
│       │   ├── test_cunit.c
│       │   └── test_cunit.h
│       ├── Win
│       │   ├── resource.h
│       │   ├── Win.c
│       │   └── Win.h
│       └── wxWidget
│           ├── icon_suite_active_open.xpm
│           ├── icon_suite_active.xpm
│           ├── icon_suite_inactive_open.xpm
│           ├── icon_suite_inactive.xpm
│           ├── icon_test_active_suite_inactive.xpm
│           ├── icon_test_active.xpm
│           ├── icon_test_inactive_suite_inactive.xpm
│           ├── icon_test_inactive.xpm
│           ├── Makefile.am
│           └── wxWidget.cpp
├── CUnit.dsw
├── cunit.pc
├── cunit.pc.in
├── CUnit.spec
├── CUnit.spec.in
├── depcomp
├── doc
│   ├── CUnit_doc.css
│   ├── error_handling.html
│   ├── fdl.html
│   ├── headers
│   │   ├── Automated.h
│   │   ├── Basic.h
│   │   ├── Console.h
│   │   ├── CUCurses.h
│   │   ├── CUError.h
│   │   ├── CUnit.h
│   │   ├── CUnit_intl.h
│   │   ├── Jamfile
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── MyMem.h
│   │   ├── TestDB.h
│   │   ├── TestRun.h
│   │   ├── Util.h
│   │   ├── Win.h
│   │   └── wxWidget.h
│   ├── index.html
│   ├── introduction.html
│   ├── Jamfile
│   ├── Makefile
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── managing_tests.html
│   ├── running_tests.html
│   ├── test_registry.html
│   └── writing_tests.html
├── Doxyfile
├── Examples
│   ├── AutomatedTest
│   │   ├── AutomatedTest.c
│   │   ├── AutomatedTest.dsp
│   │   ├── AutomatedTest_v1.c
│   │   ├── Jamfile
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   └── README
│   ├── BasicTest
│   │   ├── BasicTest.c
│   │   ├── BasicTest.dsp
│   │   ├── Jamfile
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   └── README
│   ├── ConsoleTest
│   │   ├── ConsoleTest.c
│   │   ├── ConsoleTest.dsp
│   │   ├── ConsoleTest_v1.c
│   │   ├── Jamfile
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   └── README
│   ├── CursesTest
│   │   ├── CursesTest.c
│   │   ├── CursesTest_v1.c
│   │   ├── Jamfile
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   └── README
│   ├── Demo_fprintf
│   │   └── CUnitExample.c
│   ├── ExampleTests.c
│   ├── ExampleTests.h
│   ├── Jamfile
│   ├── Makefile
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── WinTest
│   │   ├── Jamfile
│   │   ├── ReadMe.txt
│   │   ├── StdAfx.cpp
│   │   ├── StdAfx.h
│   │   ├── WinTest.cpp
│   │   ├── WinTest.dsp
│   │   └── WinTest_v1.cpp
│   └── wxWidgetsTest
│       ├── Makefile.am
│       ├── README
│       ├── wxWidgetsTest.c
│       └── wxWidgetsTest.rc
├── INSTALL
├── install-sh
├── Jambase
├── Jamfile
├── Jamrules
├── Jamrules.in
├── libcunit_dll.def
├── libtool
├── ltmain.sh
├── Makefile
├── Makefile.am
├── Makefile.in
├── Man
│   ├── Jamfile
│   ├── Makefile
│   ├── Makefile.am
│   ├── Makefile.in
│   └── man3
│       ├── CUnit.3
│       ├── Jamfile
│       ├── Makefile
│       ├── Makefile.am
│       └── Makefile.in
├── missing
├── mkinstalldirs
├── NEWS
├── PACKAGE
├── README
├── Share
│   ├── CUnit-List.dtd
│   ├── CUnit-List.xsl
│   ├── CUnit-Run.dtd
│   ├── CUnit-Run.xsl
│   ├── Jamfile
│   ├── Makefile
│   ├── Makefile.am
│   ├── Makefile.in
│   ├── md2xml.pl
│   ├── Memory-Dump.dtd
│   └── Memory-Dump.xsl
├── stamp-h1
├── stamp-h.in
├── TODO
├── VC7
│   ├── AutomatedTest
│   │   └── AutomatedTest.vcproj
│   ├── AutomatedTest_v1
│   │   └── AutomatedTest_v1.vcproj
│   ├── BasicTest
│   │   └── BasicTest.vcproj
│   ├── ConsoleTest
│   │   └── ConsoleTest.vcproj
│   ├── ConsoleTest_v1
│   │   └── ConsoleTest_v1.vcproj
│   ├── CUnit.sln
│   ├── CUnit.suo
│   ├── libcunit
│   │   └── libcunit.vcproj
│   ├── Readme.txt
│   └── test_cunit
│       └── test_cunit.vcproj
├── VC8
│   ├── AutomatedTest_v1.vcproj
│   ├── AutomatedTest.vcproj
│   ├── BasicTest.vcproj
│   ├── ConsoleTest_v1.vcproj
│   ├── ConsoleTest.vcproj
│   ├── CUnit.sln
│   ├── CUnit.suo
│   ├── libcunit.vcproj
│   ├── Readme.txt
│   ├── test_cunit.vcproj
│   └── wxWidgetsTest.vcproj
├── VC9
│   ├── AutomatedTest.vcproj
│   ├── BasicTest.vcproj
│   ├── ConsoleTest.vcproj
│   ├── CUnit.sln
│   ├── CUnit.sln.cache
│   ├── CUnit.suo
│   ├── libcunit.vcproj
│   ├── Readme.txt
│   └── test_cunit.vcproj
└── VERSION

1 个答案:

答案 0 :(得分:0)

手动命令失败,因为您没有使用正确的-I标志。在转录make输出时,您丢失了前导/home/renagade629前缀。