Как я могу настроить лингер в Cmake, чтобы он использовал G ++ вместо AR+C ++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу настроить лингер в Cmake, чтобы он использовал G ++ вместо AR+C ++?

Сообщение Anonymous »

Моя проблема в том, что я хочу использовать LLD в качестве линкера Dropin в моей установке Mingw. Итак, я скопировал lld.exe как lld.exe, ld.lld.exe и lld -link.exe в мой каталог mingw bin (только один из них действительно нужен, но какой -то один, немного неясно - но это не мой вопрос здесь). Используйте G ++, чтобы преобразовать мои файлы .o в .exe, я также добавляю «-fuse-ld = lld» в этот вызов. Была проблема, что, что бы я ни делал, линкер не использует LLD. Я попробовал все, что вы можете найти в Интернете по этому поводу. Я в конечном итоге настройка < /p>

Код: Выделить всё

set(CMAKE_CXX_FLAGS "-fuse-ld=lld")

Это приводит к настройке «LLD», добавленной также в команду Linking в файле link.txt, которая генерируется Cmake в каталоге сборки:

Код: Выделить всё

"C:\Program Files\CMake\bin\cmake.exe" -E rm -f CMakeFiles\UnitTests.dir/objects.a C:\Tools\mingw64\bin\ar.exe qc CMakeFiles\UnitTests.dir/objects.a @CMakeFiles\UnitTests.dir\objects1.rsp C:\Tools\mingw64\bin\c++.exe -fuse-ld=lld -g -O1 -Wl,--whole-archive CMakeFiles\UnitTests.dir/objects.a -Wl,--no-whole-archive -o ..\bin\UnitTests.exe -Wl,--out-implib,libUnitTests.dll.a -Wl,--major-image-version,1,--minor-image-version,0 @CMakeFiles\UnitTests.dir\linkLibs.rsp 

Это работает, но проблема в том, что, как вы видите, это 3 команды: 1) RM, который быстр, 2) ar.exe, который является медленным, 3) вызов линкера C ++, который снова быстро. Таким образом, все файлы .o находятся в списке «Objects.a», которые предоставляются команде «ar.exe». Затем линкер воспринимает его как архив и создает двоичный.

Код: Выделить всё

C:\Tools\mingw64\bin\g++.exe -fuse-ld=lld -g -O1 @CMakeFiles\UnitTests.dir\objects1.rsp -o ..\bin\UnitTests.exe -Wl,--out-implib,libUnitTests.dll.a -Wl,--major-image-version,1,--minor-image-version,0 @CMakeFiles\UnitTests.dir\linkLibs.rsp

Связывание снова очень быстро, когда я пропускаю AR.Exe. Я не вижу и недостатков. Это для меня неясно. < /P>
Я не нашел никакой информации о том, что я могу изменить. Также я не слишком много пробовал, потому что я действительно не знаю, с чего начать. Честно говоря, я пользователь Cmake со вчерашнего дня: D, так что не вините меня в моих пропущенных знаниях. Я надеюсь найти здесь решение.

Подробнее здесь: https://stackoverflow.com/questions/784 ... ad-of-ar-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как скомпилировать файл .cpp только в файл объекта, не вызывая лингер
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • QT IOS -лингер -точка ввода ошибки (_main) не определен
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Лингер GCC не может найти доступные библиотеки
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Лингер GCC не может найти доступные библиотеки
    Anonymous » » в форуме Linux
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Ошибка CMake в cmake/QtSeparateDebugInfo.cmake:65 (сообщение): Извлеченный двоичный путь для полосы не существует. Кросс
    Anonymous » » в форуме Linux
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»