#pragma comment (lib, "\\...") не видит, если слэши в пути
От: Klirik  
Дата: 05.08.08 09:20
Оценка:
Есть вот такая простая конструкция в VS2008, C++:

#pragma comment( lib, "\\foo\\bar\\somelib.lib" )

Сама библиотека лежит по пути c:\sdk\foo\bar\somelib.lib

В меню tools\options\Projects and solutions\VC++ Directories в раздел Library files для всех нужных платформ добавлен путь c:\sdk\

При линковке всегда вылезает ошибка LNK1104 (библиотека '\foo\bar\somelib.lib' не найдена)

Пробовал прописывать полный путь:

#pragma comment( lib, "c:\\sdk\\foo\\bar\\somelib.lib" )

— РАБОТАЕТ.

Пробовал наоборот, прописывать в свойства студии полный путь, а в прагму вставлять только имя библиотеки:

#pragma comment( lib, "somelib.lib" )

— тоже, РАБОТАЕТ.

Проблема в том, что должен работать начальный вариант, поскольку проект поддерживается сразу несколькими разработчиками — и у них всё линкуется именно в первоначальном варианте.

Я перепробовал все варианты с прямыми и обратными слэшами в пути; также с завершающим и без завершающего слэша в пути в свойствах студии. Успеха не добился.

Подскажите, гдя я тут туплю?
Re: #pragma comment (lib, "\\...") не видит, если слэши в пу
От: Сергей Мухин Россия  
Дата: 05.08.08 09:22
Оценка:
Здравствуйте, Klirik, Вы писали:

#pragma comment( lib, "foo\\bar\\somelib.lib" )

?
---
С уважением,
Сергей Мухин
Re: #pragma comment (lib, "\\...") не видит, если слэши в пу
От: Bell Россия  
Дата: 05.08.08 09:25
Оценка:
Здравствуйте, Klirik, Вы писали:

#pragma comment( lib, "foo/bar/somelib.lib" )


А так?
Любите книгу — источник знаний (с) М.Горький
Re[2]: #pragma comment (lib, "\\...") не видит, если слэши в
От: Klirik  
Дата: 05.08.08 09:51
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, Klirik, Вы писали:


СМ>#pragma comment( lib, "foo\\bar\\somelib.lib" )


СМ>?


нет, так, увы, тоже. Я перепробовал все комбинации прямых и обратных слэшей — как от корня, так и от текущей папки.
Re[2]: #pragma comment (lib, "\\...") не видит, если слэши в
От: Klirik  
Дата: 05.08.08 09:52
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, Klirik, Вы писали:


B>
B>#pragma comment( lib, "foo/bar/somelib.lib" )
B>


B>А так?


нет, так тоже пробовал. Я все комбинации перепробовал.

К тому же — мне кажется, дело явно в настройках студии (вот только в каких?)
Потому что у коллеги в другом городе проект собирается. Репозитарий у нас общий. Значит, дело только в каких-то настройках.
Re[3]: #pragma comment (lib, "\\...") не видит, если слэши в
От: Сергей Мухин Россия  
Дата: 05.08.08 09:55
Оценка:
Здравствуйте, Klirik, Вы писали:

K>Здравствуйте, Сергей Мухин, Вы писали:


СМ>>Здравствуйте, Klirik, Вы писали:


СМ>>#pragma comment( lib, "foo\\bar\\somelib.lib" )


СМ>>?


K>нет, так, увы, тоже. Я перепробовал все комбинации прямых и обратных слэшей — как от корня, так и от текущей папки.



прямые и обратные — должно быть монопенициально.

а что-нибудь такое?


#pragma comment( lib, "..\\foo\\bar\\somelib.lib" )
---
С уважением,
Сергей Мухин
Re: #pragma comment (lib, "\\...") не видит, если слэши в пу
От: Uzumaki Naruto Ниоткуда  
Дата: 05.08.08 10:20
Оценка:
Путь к библиотеки — есть свойство проекта, как и имя самой библиотеки, по этому включать подобный образом через #pragma в код считаю дурным тоном — тут жесткая завязка на VS, что не есть хорошо.

Если уж и писать — то писать #pragma comment( lib, "somelib.lib" ), а путь указывать в свойствах проекта... А лучше все же вообще не писать.

Re: #pragma comment (lib, "\\...") не видит, если слэши в пу
От: Klirik  
Дата: 19.08.08 02:49
Оценка: 1 (1)
Проблема, оказывается, в студии.

Установка VS90-KB948127 и VS90-KB946040 (не стал выяснять, какого именно из двух) полностью решило проблему (при этом в описании обновлений про указанную проблему ничего не сказано).

----------

K>Есть вот такая простая конструкция в VS2008, C++:


K> #pragma comment( lib, "\\foo\\bar\\somelib.lib" )


K>Сама библиотека лежит по пути c:\sdk\foo\bar\somelib.lib


K>В меню tools\options\Projects and solutions\VC++ Directories в раздел Library files для всех нужных платформ добавлен путь c:\sdk\


K>При линковке всегда вылезает ошибка LNK1104 (библиотека '\foo\bar\somelib.lib' не найдена)


...

K>Я перепробовал все варианты с прямыми и обратными слэшами в пути; также с завершающим и без завершающего слэша в пути в свойствах студии. Успеха не добился.


K>Подскажите, гдя я тут туплю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.