Привет /b/ратья. Где и как лучше всего хранить файлы заголовков и файлы библиотек? Допустим, у меня есть файлы Detours.h, Detours.cpp и Detours.lib. Раньше, при загрузке чего-то мне нужного с интернета, я создавал под это папку, типа тут у меня файлы Detours, тут файлы чего-то еще и выбирал их постоянно в свойствах проекта. Хотелось бы чтобы можно было при загрузке чего-то нового просто скидывать это в папку, чтобы при создании нового проекта было достаточно просто прописать #include "blabla.h" и Visual Studio сама бы находила нужное без указания пути к папкам в свойствах проекта. Так вот, как это сделать? Была идея найти путь где лежат файлы заголовков типа iostream и туда просто в папку покидать заголовочные файлы и файлы .cpp а .lib файлы покидать соответственно туда где Visual Studio ищет .lib Это правильное решение? Как сделать лучше всего? Где находятся эти папки?
>>252188893 (OP) Если ты на галере - то делаешь так, как принято на конкретно твоей галере. Если ты пет проект пилишь - то делаешь, как тебе удобно. Правильных и неправильных решений нет, потому что всё равно пути ко всем файлам произвольные указываются при сборке, просто вижуал студио не показывает тебе этот процесс. Обычно делают папки lib и include в каталоге проекта, .h файлы кладут в include, а статические библиотеки в lib, .cpp файлы не нужны в случае, когда у тебя уже есть статическая библиотека (и наоборот, .lib не нужен, если ты хочешь компилировать из .cpp файла).
>>252192354 Я программирую для себя и меня просто заебало каждый раз указывать в свойствах проекта путь к папкам в которых Visual Studio должна искать .h и .lib файлы. Как сделать чтобы не приходилось каждый раз этого делать? Чтобы можно было создать чистый проект и сразу инклудить нужное?
>>252192592 Это фундаментальный недостаток C++, что спецификация описывает только язык программирования, а система сборки не определена, и отличается у разных людей/галер. Кто-то указывает файлы в свойствах проекта вижуал студии, кто-то мейкфайлы пишет, кто-то пользует cmake или qmake, кто-то (большие галеры) использует самописную систему сборки. Стандарта нет, как тебе удобнее - так и делай. Попробуй cmake, например, может будет удобнее. А может и нет.
>>252192816 Бля я не понимаю нихуя, ты просто скажи как лучше, закинуть все говно в папку где хранятся все .h файлы или же сделать какую-то отдельную папку packages которая будет автоматом во всех проектах прописана и прописывать инклуды как #include <Detours/Include/Detours.h>
>>252193186 Ты каждые пять минут новый проект создаешь что ли? Даже если так, то сделай общую папку для проектов, и и в ней сделай папку include и инклудь как #include "../../include/detours.h"
>>252193186 Анон, тебе лучше свалить на жс по хорошему, ты долбоёб. В жс можно создать в подкаталоге index.js и в нём прописать сбор своего говнокода со всех файлов. __мимо бывший сеньор крестов__
>>252188893 (OP) Респект за православный язык >Была идея найти путь где лежат файлы заголовков типа iostream и туда просто в папку покидать заголовочные файлы вот так не нужно делать. Системные либы отдельно, свои - отдельно
>>252196083 А как тогда анон? Свою папку создать под это и туда кидать все файлы или же под каждые файлы называть папку и прописывать чота типа #include <Detours/Detours.h> вместо #include <Detours.h>
Сделай свой шаблон нового проекта и юзай его. Путь к твоей папке с сурсами советую хранить в виде environment variable, если с каким то долбоебом, как и ты, придется пилить проект совместно
>>252188893 (OP) Эксперт плюсовод вкатился. Даю тебе свой барский совет, гнилой ты вкатыш: прописываешь все пути в переменные окружения и не ебешь мой экспертный мозг на двачах.
>>252197520 Оп у меня была такая хуйня, я решал задачки олимпиадные по проге, и я писал на плюсах в вижаке, но мне было удобнее сдавать задачи на gcc компиляторе в системе проверки задач, и вот в gcc есть такая удобная хуйня которой нет в вижаке.
#include bits/stdc++.h - эта хуйня инклюдит все библеотеки типо алгоритм стэк дек иострим и тд.
Я просто нашел в директории где хранятся библеотеки, и создал там эту либу и потом в каждом проекте писал #include bits/stdc++.h
>>252197990 >прописываешь все пути в переменные окружения Как это сделать и будет ли это работать с новыми проектами? Или же в каждый новый проект так же чет прописывать придется?
> Была идея найти путь где лежат файлы заголовков типа iostream и туда просто в папку покидать заголовочные файлы и файлы .cpp а .lib файлы покидать соответственно туда где Visual Studio ищет .li Ну ты и пидор конечно, небось свои dll при установке в system32 ещё закидываешь? Версионировать эту шляпу как собираешься? В курсе что код со временем меняется? Что будешь делать когда понадобятся одновременно две версии для разных веток? Сделай репу и клонируй гитом в подпапку с проектом, можешь гит-модулем сделать будет вобще красота. Если используешь для сборки qmake можно сделать pri-файл со всеми сурсами который можно подключить в pro-файл одним инклюдом, в этом вашем мсбилде тоже что-то похожее должно быть, да и в любом другом комбаене для сборки.
>>252188893 (OP) Это не важно. Просто объединяй его как проект для vs и добавляй в проект для VS солюшн, а в солюшене выставляй проджект депенденси. конан, цмейк нафиг не нужны если ты метишь на кросс платформу.
>>252193008 Никак. Тут нет чего-то вроде cargo как в раст или системы сборки как в go. В С++ надо прописывать насктройки lib и include КАЖДЫЙ раз когда добавляешь новые внешние зависимости и править солюшн. Проще всего делать проектный файл при скачке либы и добавлять его в депенденси через UI. Иные пути это всё вариации. Почему так? Потому что за UI студии стоит вызов банального cl.exe и ld.exe с набором параметров где через -I указывается путь где лежат инклюды, а через -L путь с либами, а потом ещё через -l конкретно названия либов. Увы, С++ пока не прокачали инструментом вроде cargo из раст.
>>252201026 у тебя в дефолтные студийные props-файлы инклудится вцпкгшные пропсы. И таким образом в каждом проекте уже все пути прописаны до всех установленных либ, просто инклудь и пользуй, даже #pragma comment(lib) прописывать не надо, все само слинкуется
>>252201174 >за сорок лет тулинг не запилили Взрывной интерес к системам сборки появился где-то в районе 2010, а после второго приходя обезьян появляются всякие системы управления пакетами для их JS песочницы.
>>252201665 Только если вот так. Но не кушай каку - пользуй вцпкг, полчаса разобраться (мб больше, если ты тугой) - а дальше у тебя полторы тыщи библиотек под руками вообще без ебли
>>252201843 Я учился писать код в швятой штудии, как все нормальные люди, и для меня было шоком, когда я устроился на первую работу, и там какие-то баш-скрипты для сборки через жопу. Такие, что ни в одной IDE это говно не подсвечивается даже.
Сменил работу - такое же говно, все вокруг пишут в виме, запускают баш скрипты на солярке для сборке.
Сменил работу - опять ебучие скрипты блядь, какое же говноедство. Ходил файл с проектом qtcreator'а, чтобы хоть какая-то подсветка в IDE была.
Там я понял - что вы дрочите свои пердоли как хотите, дальше я буду писать только в студии под винду. И повезло найти именно такую работу. Мсбилд, студия, решарпер++, и вообще никакого линукса. Разменял 4ый год уже на этом месте, и, вероятно, тут и останусь до пенсии. Ебал я ваши линуксы, симейки, хуейки и прочее
>>252202055 Баш-скрипты это сильно легаси. Зачастую, надо встроить приложение в систему CI/DI, а разбираться что и как в VS делается - никто не хочет, поэтому это и превращается в самописные скрипты. >Мсбилд А чем он отличаеся от других скриптов? То же говно текстовое.