Я постараюсь кратко объяснить, что я хочу сделать:
Проект, использующий статическую библиотеку, в которой другая находится в качестве depandency.
Он создает проект под названием MyProject linking на MyLib1, связывающий MyLib2.
Вот порядок компиляции:
- MyLib2
- MyLib1 (ссылка на MyLib2)
- MyProject (ссылка на MyLib1)
Я использую Visual Studio 2008, и у меня есть некоторые проблемы с определением include.
При связывании я использую свойство «Дополнительный каталог включения» (в узле свойства проекта C / C ++).
Кажется, это работает между MyProject и MyLib1, но не MyLib1 и MyLib2.
Например: у меня есть файл в MyLib2 с именем foo.cpp; Использование #include "foo.cpp" заставляет Visual Studio сообщать, что foo.cpp неизвестен (отсутствует файл или папка).
Чтобы убедиться, что это НЕ неправильный путь, который я указал, я сделал много попыток, таких как: скопируйте и вставьте путь, показанный в командной строке (используется для компиляции библиотеки) в win explorer: я хорошо вижу исходный код моего вторая библиотека. Я много раз переделывал проект, и каждый раз я использовал разные имена (заставляя меня обращать на это внимание), и все, кажется, хорошо определено (но не «включая»).
Единственный способ заставить его работать: использовать #include "c: \\ foo.cpp" как include ... Очень хорошо для переносимости!
Вот Zip решения, чтобы протестировать его самостоятельно и сказать, что не так: MyProject.rar
Спасибо, что нашли время помочь мне!
Lucyberad