2014-09-28 2 views
0

Я новичок в C++, и я работаю с IDE Code :: Blocks on Windows. У меня есть проект myProject и У меня есть другой проект myProjectTesting, который зависит от моего проекта.Код :: Блоки зависимости между проектами

У меня есть myProject как зависимость для myProjectTesting, как объясняется в Code::Blocks documentation.

myProjectTesting содержит только один файл со следующим кодом:

#include "Position.hpp" 

int main() 
{ 
    Position position(3, 4); 

    return 0; 
} 

Position.hpp является классом заголовка в MyProject. У меня есть следующее сообщение об ошибке при компиляции с GCC:

undefined reference to `Position::Position(int, int)'. 

Обратите внимание, что линия Position position(3, 4); работает нормально, если я использую его в MyProject.

Position.hpp файл:

/* 
* Position.hpp 
* 
* Created on: 30/08/2014 
*  Author: Romain 
*/ 

#ifndef POSITION_H_ 
#define POSITION_H_ 
#include <string> 

class Position 
{ 
public: 

    Position(int _x, int _y); 
    Position(); 
    Position deltaX(int delta); 
    Position deltaY(int delta); 
    Position deltaXY(int deltaX, int deltaY); 
    int getX(); 
    int getY(); 
    std::string print(); 

private: 

    int x; 
    int y; 
}; 

#endif /* POSITION_H_ */ 
+0

Можете ли вы также опубликовать код 'Position.hpp'. –

+0

@Learner Конечно, я только что добавил файл. – Romain

+0

Ваша ошибка свидетельствует о том, что 'myProjectTesting' не может найти определение' Position :: Position (int, int) '. Поэтому я предполагаю, что вы не связали свой 'myProject' с' myProjectTesting' должным образом. –

ответ

0

я узнал, что мой вопрос был (от CodeBlocks forum)

Декларирование (в Code :: Blocks) проект в зависимость от другого проекта, только влияет на порядок сборки проекта, то есть myProject построен до myProjectTesting в моем случае.

Но мне все же пришлось вручную добавить библиотеку myProject в библиотеки, связанные с myProjectTesting.

Смежные вопросы