Hello Dieter,

Thank you for trying to help me, I really appreciate it!

I'm working on my final assignment for my bachelor. Unfortunately this
means my choices are a bit limited.
I'm using Code::Blocks 12.11 as my IDE and GCC 4.6.2 as my compiler. I'm
more used to using C# and java, but for this assignment I need to use C++.

I have some extra questions for you that I hadn't thought of before:

I'm not trying to write a library. Can I only use UnitTest++ to test code
that has been compiled into a library?
Do you know how to get Code::Blocks to have GCC build a library with code
that otherwise is intended to be run as part of a runtime? (Do I need to
change anything else other than some compiler flags?)
I kind of assumed that if the compiler can find the .h(pp) files, which it
does (compiler errors are different if I don't do the include), it can
compile the code and then link it. I'm not (really||at all) up to speed on
solving linker problems, except for the most basic cases. (it seems 90% of
the results that I found on google deal with missing implementations,
circular inclusion and missing main functions)

I hope you can help me inch my way forward. (or if anyone else knows what
cures there might be, you're most welcome as well ;-) )


Yours sincerely,

Onno


On Mon, Jul 1, 2013 at 11:39 AM, Dieter Rosch <die...@bbd.co.za> wrote:

> You need to add the library which contains the CameraLeaf code to your
> linker’s input. I assume you are in Visual Studio?****
>
> Right click your unittest project, Properties->LinkeràInput->Additional
> Dependencies. Add the name of your library into the list there. ****
>
> ** **
>
> ** **
>
> ** **
>
> *[image: Adobe Systems]***
>
> *Dieter Rosch*
>
> *Executive*****
>
> M +27 83 461 1988****
>
> O +27 11 532 8300****
>
> * *
>
> *www.bbd.co.za* <http://www.bbd.co.za/>**
>
> * *
>
> 11 Boundary Road, Isle of Houghton, Wilds view, Houghton estate.****
>
> * *
>
> This e-mail is confidential and subject to the disclaimer published on the
> BBD website <http://www.bbd.co.za/emaildisclaimer.htm>.****
>
> ** **
>
> ** **
>
> *From:* Onno Filippo [mailto:c.o.fili...@gmail.com]
> *Sent:* 01 July 2013 09:16 AM
> *To:* unittest-cpp-devel@lists.sourceforge.net
> *Subject:* [unittest-cpp-devel] Newbie question - linking errors when
> trying to compile tests (using UnitTest++), code compiles in 'product'
> project****
>
> ** **
>
> I've already asked this question on SO (
> http://stackoverflow.com/questions/17276901/linker-errors-when-trying-to-link-code-in-tests-using-unittest)
> but unfortunately it hasn't received any answers that would help me any
> further. I'm really getting frustrated. I don't see any circular
> inclusions, and the classes all have definitions of the functions and/or
> constructors in their respective .cpp files.****
>
> question:****
>
> ==================****
>
> So I'm using Unittest++ (version 1.4)****
>
> I've tried making a couple of dummy tests (CHECK(true) and CHECK(false),
> and those work fine. However, as soon as I try to include some production
> code, the linker goes nuts over using any class or function from the
> headers that I've included for testing.****
>
> My questions are:****
>
>    1. Can this be caused by anything in UnitTest++?****
>    2. How do I set up my code or the project in Code::Blocks to make this
>    error go away?****
>
> Details:****
> ------------------------------
>
> I have used unit testing before with java and C#, but I've never before
> used a C++ based unit testing package. I'm using Code::Blocks 12.11 as my
> IDE and GCC 4.6.2 as the compiler to do my work. ****
>
> I have unpacked UnitTest++ to my tools folder and compiled it as explained
> in the tutorial at http://wiki.codeblocks.org/index.php?title=UnitTestingand 
> have built the library file succesfully. I've added the location of the
> library file to the linker search directory settings in my test projects'
> settings file.****
>
> The code under test compiles fine in its own project, but not when called
> from the tests.****
>
> I've set up my project so that every class is tested in its own test file.
> I have a main.cpp to bind all the tests together.****
>
> ** **
>
> #include UnitTest++.h****
>
> ** **
>
> int main(int, char const *[])****
>
> {****
>
>     return UnitTest::RunAllTests();****
>
> }****
>
> One class that I'm trying to test is CameraLeaf:****
>
> ** **
>
> #include <SceneManagement\CameraLeaf.h>****
>
> #include <Camera.hpp>****
>
> #include <UnitTest++.h>****
>
> ** **
>
> using namespace SceneManagement;****
>
> ** **
>
> ** **
>
> TEST(TestCameraLeafInitialisation)****
>
> {****
>
>     Camera * cam = new Camera();****
>
>     CameraLeaf * camLeaf = new CameraLeaf(1, 800, 600, 90.0f, cam);****
>
>     CHECK(camLeaf->getType() == 1);****
>
> }****
>
> (I'm using search directory includes using angled brackets, but won't show
> properly on SO)****
>
> results in:****
>
> -------------- Build: Release in Scene Graphs Tests (compiler: GNU GCC 
> Compiler)---------------****
>
> ** **
>
> mingw32-g++.exe -std=c++0x -Wall -fexceptions  -O2  -march=core2   
> -I"C:\tools\Catch\Catch-0.7(may 2013)\include" -IC:\tools\UnitTest++\src 
> -IC:\Projects\Scene_Graphs  -c 
> C:\Projects\Scene_Graphs\tests\unit\CameraLeafTestSuite.cpp -o 
> obj\Release\unit\CameraLeafTestSuite.o****
>
> mingw32-g++.exe  -o "bin\Release\Scene Graphs Tests.exe" 
> obj\Release\unit\CameraLeafTestSuite.o obj\Release\unit\TimeTestSuite.o 
> "obj\Release\Scene Graphs Tests\main.o"   -s  
> C:\tools\UnitTest++\Deliv\Release\libUnitTest++.a ****
>
> obj\Release\unit\CameraLeafTestSuite.o:CameraLeafTestSuite.cpp:(.text+0x97): 
> undefined reference to `Camera::Camera(std::string, glm::detail::tvec3)'****
>
> obj\Release\unit\CameraLeafTestSuite.o:CameraLeafTestSuite.cpp:(.text+0xe4): 
> undefined reference to `SceneManagement::CameraLeaf::CameraLeaf(int, int, 
> int, float, Camera*)'****
>
> obj\Release\unit\TimeTestSuite.o:TimeTestSuite.cpp:(.text+0x25): undefined 
> reference to `Time::getInstance()'****
>
> collect2: ld gaf exit-status 1 terug****
>
> Process terminated with status 1 (0 minutes, 3 seconds)****
>
> 3 errors, 0 warnings (0 minutes, 3 seconds)****
>
> I must admit that my knowledge of C++ isn't top notch, but so far I've
> been able to get by. I don't quite know how to solve this problem. The unit
> tests are in a subdirectory of the project, and should be reachable with
> either search directory inclusion or using ../ to skip down to the level
> where the production code is. As far as I can see, the code is found,
> otherwise the compiler would throw me a file not found error. So I've
> concluded this must be a linker error. However, this isn't a case of
> recursive inclusion, as the camera doesn't need a cameraleaf, nor do the
> tests need things from the unittest++ framework. So I'm a bit at a loss now.
> ****
>
> Background story:****
> ------------------------------
>
> It's all part of the last assignment I have to do to complete my bachelor,
> these versions came recommended by the guy who's teaching the course, as it
> works best with the boiler plate code he provided. Apparently there are
> some problems with newer versions of GCC. I've completed most of the
> assignment, but I've run into some problems, so I've decided to create some
> tests after all.****
>
> ==============****
>
> I really don't know where to start. The product project compiles and runs,
> but contains errors. I need to do some repeatable tests to continue.  Any
> help/pointers to info regarding linker errors in code that compiles and
> links fine in its 'original project' would really be appreciated.****
>
> ** **
>
> I really don't have a clue if this is due to something in my code, ****
>
> ** **
>
> thnx,****
>
> ** **
>
> Onno****
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> unittest-cpp-devel mailing list
> unittest-cpp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unittest-cpp-devel
>
>

<<image003.png>>

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
unittest-cpp-devel mailing list
unittest-cpp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unittest-cpp-devel

Reply via email to