Shakhzod
Создать папку build mkdir build Перейти в нее cd build Собрать cmake cmake ..
Shakhzod
Потом без проблем можно удалить папку build
Михаил
Я не могу менять каталог. Нужно запустить cmake в винде через CreateProcess . Оно не понимает cd. Было бы неплохо исправить ситуацию, но не особо понятно как. С cmake разобрался, нашел два флага H и B, позволяющих указывать папку для генерации файлов.
Vladislav
у CreateProcess есть аргумент lpCurrentDirectory
Михаил
А CreateProcess обернуто в другую функцию. Кажется нужно добавить разбор на && и обрабатывать cd в программе. Чтобы сделать логику как в линуксе.
Anonymous
Нужно запустить cmake в винде через CreateProcess . Оно не понимает cd. 😕😕😕🙈🙈🙈🙈
Anonymous
укажи директорию, от туда и будет идти запуск..
Михаил
У меня обертка для линукса и винды, она понимает только строку с командой(и переменные окружения).
Anonymous
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
Михаил
Обертка, чтобы в двух системах использовать одну функцию.
Anonymous
ссылку выше чекни
Михаил
В линуксе fork() и system(cmd).
Anonymous
Я не могу менять каталог. Нужно запустить cmake в винде через CreateProcess . Оно не понимает cd.
Anonymous
в чем проблема ?
Alexey
Setcwd кросплатформенная вроде?
Alexey
Ну или в винде дерни SetCurrentDirectory
Михаил
Проблема уже не особо актуальна. Проблема в том, что CreateProcess не понимает cd, вопрос, как его научить.
Михаил
Ну или в винде дерни SetCurrentDirectory
У меня сервер, ему нельзя менять текущую директорию.
Anonymous
STARTUPINFOW si = {0}; PROCESS_INFORMATION pi= {0}; CreateProcessW(L"\\?\C:\Cmake\Cmake.exe", L"-config", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
Anonymous
дак этоже здорово
Anonymous
не зменяемая директория
Anonymous
просто добавь ее суда
Anonymous
CreateProcessW(L"Cmake.exe", L"-config", NULL, NULL, FALSE, 0, NULL, L"\\?\C:\Cmake", &si, &pi);
Anonymous
О бож
Anonymous
😆😆😆
Anonymous
Что за ужас
Anonymous
?
Alexey
А переменные окружения ты можешь выставить? Можешь попробовать выставить переменную CD
Михаил
А переменные окружения ты можешь выставить? Можешь попробовать выставить переменную CD
Могу, но они вставляются сложнее и вряд ли винда и линукс на них будут внимание обращать.
Anonymous
😕
Alexey
Чувак, а можно переписать обертку нормально? На винде позвать create process
Anonymous
😕😕😕
Anonymous
@afilipyev книжку чекнул?
Alexey
@afilipyev книжку чекнул?
Не успел. Домашние дела накрыли. Сегодня вечером чекну
Anonymous
😉😉😉
$continue$
Друзья, не подскажите как в запущенных процессах по хеш-сумме отловить запущена ли программа? (WinApi)
Anonymous
ахах
$continue$
И вообще возможно ли это?
Anonymous
снап тулл шот делать, перечислять процессы получать путь до ехе шника чекать хеш сумму
Alexey
По хеш сумме чего? И почему именно по хеш сумме?
$continue$
По хеш сумме чего? И почему именно по хеш сумме?
Файла (exe). Потому что имя процесса изи изменить.
$continue$
Нужно точно знать, что запущенная именно эта программа
Anonymous
снап тулл шот делать, перечислять процессы получать путь до ехе шника чекать хеш сумму
Alexey
Файла (exe). Потому что имя процесса изи изменить.
А если другая версия? И хеш разный..?
Anonymous
ему же для сторонеей программы
Anonymous
да и мьютексы работают в контексте текущего пользователя
Anonymous
class AppCounter { public: AppCounter(IN LPCTSTR szShareName, IN LPSECURITY_ATTRIBUTES pSA = NULL) : m_pdwValue(NULL) { m_hMap = CreateFileMapping(INVALID_HANDLE_VALUE, pSA, PAGE_READWRITE, 0, sizeof(DWORD), szShareName); if (m_hMap) m_pdwValue = LPDWORD(MapViewOfFile(m_hMap, FILE_MAP_WRITE, 0, 0, 0)); if (m_pdwValue) (*m_pdwValue)++; } virtual ~AppCounter() { if (m_pdwValue) { (*m_pdwValue)--; UnmapViewOfFile(m_pdwValue); } if (m_hMap) CloseHandle(m_hMap); } BOOL OK() const { return m_pdwValue != NULL; } DWORD GetValue() const { return OK() ? *m_pdwValue : 0; } private: HANDLE m_hMap; LPDWORD m_pdwValue; };
Anonymous
не мой код, сразу говорю..
Anonymous
чекает в контексте текущего пользователя
$continue$
Тут нет же хеша? Или я не вижу его? Ну по имени файла я уже смотрел как находить. Я понял, что надо все запущенные процессы найти, по ним цикл и еще путь до exe (от него хеш) и чекать хеш
Anonymous
ну там сразу будет хандле на ехе
Anonymous
так что можно не получать путь
Andrei
Братцы, кто с llvm знаком?
Andrei
:(
Sergey
везет тебе
Sergey
а какая задача?
Andrei
Задача?
Sergey
ну ты же не просто так спрашиваешь об llvm
Andrei
Задача написать оптимизирующий компилятор для одного языка, и это не то чтобы задача, а скорее работа.
Andrei
Интересует меня обращение с call и invoke инструкциями.
Sergey
а какой язык?
Andrei
Как передавать аргументы.
Andrei
Не столь важно, внутренний.
Andrei
Также меня интересует есть ли проходы оптимизатора, где он выкидывает бранчи, которые статически известно что не задействуются, интересует меня насколько он умеет оптимизировать работу с массивами.
Andrei
Доки доками, но мне скорее best practices нужны
Sergey
Не столь важно, внутренний.
просто я не так давно порывался начать работу над одним языком, тоже на llvm
Sergey
есть же clang
Andrei
Боюсь, что у меня задача с написанием убийцы с++, мне нужны дополнительные возможности по оптимизации.
Sergey
clang имеет множество оптимизаций я думаю, лучший выбор, если уж пишешь убийцу плюсов, смотреть на реализацию плюсов.
Sergey
хотя идея немного странная)
Sergey
а не секрет кто заказчик этой работы?
Andrei
Кланг — это такой же фронтэнд. Оптимизации всё равно живут в llvm
Andrei
и осуществляются на уровне IR
Andrei
Боюсь ничего не скажет. Частное лицо :)
Sergey
эх
Sergey
Кланг — это такой же фронтэнд. Оптимизации всё равно живут в llvm
это только часть оптимизаций есть тонна оптимизаций в бэкенде же во фронте есть своя доля