C ++ - Можете ли вы встроить одну статическую библиотеку в другую?

У меня возникла странная проблема с проектом Visual Studio 2008, с которым я недавно работал.

Я пытаюсь скомпилировать новую статическую библиотеку, которая использует функции из другой статической библиотеки. (Скажем, Lib1 - это мой проект статической библиотеки, а Lib2 - это файл lib, от которого зависит Lib1).

Я могу собрать lib1 без проблем; Он включает файлы заголовков для lib2 и вызывает его функции, и здесь нет никаких проблем.

Проблема заключается в том, что я создаю отдельный тестовый проект, у которого есть Lib1 в качестве зависимости; он не собирается, и я получаю ошибки компоновщика. Неразрешенные внешние элементы - это функции, которые я пытаюсь вызвать в Lib1, которые взяты из Lib2.

Все это исправлено, когда я также включаю Lib2 в свой тестовый проект.

Все это, конечно, имеет для меня смысл; Я могу проверить, что Lib2 не встроена в Lib1 ..

Мой вопрос: есть ли способ сделать это? В идеале я хотел бы иметь возможность развернуть Lib1 как отдельную библиотеку, не требуя Lib2. (На самом деле Lib2 - это просто Lib из Windows Platform SDK, так что это не имеет большого значения ...)

Разве это не разрешено, потому что это позволит людям «прятаться» skill_id, count (*) ИЗ заданий j ВНУТРЕННЕЕ СОЕДИНЕНИЕ job_feed_details d ВКЛ j.id = d.job_id ПРИСОЕДИНЯЙТЕСЬ к jobs_skills js ...

Во-первых, вот запрос:

SELECT GROUP_CONCAT(title) title, GROUP_CONCAT(description) description,
skill_id, count(*)

FROM jobs j
INNER JOIN job_feed_details d
ON j.id = d.job_id
JOIN jobs_skills js
ON j.id = js.job_id
    WHERE moderated = 1
    group by skill_id

Все работает, как ожидалось, за исключением того, что поле описания возвращает только один результат вместо объединения всех результатов. Я подозреваю, что это связано с тем, что описание представляет собой поле текст , но я не могу найти ничего о том, почему конкатенация не работает с текстовым полем.

Кто-нибудь знает, почему это не сработает?

12
задан gideon 26 March 2011 в 20:25
поделиться