170 похожих чатов

Я знаю где находится библа GTest но что дальше можно сделать? brew

ls -v googletest

/usr/local/Cellar/googletest/1.14.0/INSTALL_RECEIPT.json
/usr/local/Cellar/googletest/1.14.0/LICENSE
/usr/local/Cellar/googletest/1.14.0/.brew/googletest.rb
/usr/local/Cellar/googletest/1.14.0/include/gtest/gtest-matchers.h
/usr/local/Cellar/googletest/1.14.0/include/gtest/gtest-death-test.h
...

11 ответов

16 просмотров

Убедись, что CMake её находит.

Kerneler- Автор вопроса
Ilya Zviagin
Убедись, что CMake её находит.

если в строчке find_package(GTest REQUIRED) я пишу например googletest, то вылазит ошибка, что cmake не может найти эту либу

Kerneler
если в строчке find_package(GTest REQUIRED) я пи...

Ну вот это всё find_package(GTest REQUIRED) target_include_directories(MyStringTests PRIVATE ${GTEST_INCLUDE_DIRS}) target_link_libraries(MyStringTests PRIVATE ${GTEST_BOTH_LIBRARIES}) Должно давать такой эффект , что GTest должен подключаться верно. А у тебя это не происходит

Kerneler- Автор вопроса
Ilya Zviagin
Ну вот это всё find_package(GTest REQUIRED) targe...

прописал -v для расширенного формата получил следующее: .../MyStringTests.cpp.o -o MyStringTests -lgtest -lgtest_main /usr/local/lib/libgtest.a /usr/local/lib/libgtest_main.a /usr/local/lib/libgtest.a решил посмотрел в папке /usr/local/lib/ библы gtest'а обнаружил, что есть только с форматом .a при этом имеются .dylib так понимаю, gtest использует статические библиотеки Мб смаку нужны динамические и как-то надо статические по особенному указать

Kerneler- Автор вопроса
Ilya Zviagin
Ну вот это всё find_package(GTest REQUIRED) targe...

поставил GTest на дебиан с теми же файлами попробовал скомпилить библу находит, но теперь не видит почему-то мой класс: /bin/ld: CMakeFiles/MyStringTests.dir/tests/MyStringTests.cpp.o: in function `MyString_capacity_Test::TestBody()': MyStringTests.cpp:(.text+0x1e): undefined reference to `MyString::MyString()' /bin/ld: MyStringTests.cpp:(.text+0x43): undefined reference to `MyString::ExtendCapacity2TimesThanNeed()' /bin/ld: MyStringTests.cpp:(.text+0x52): undefined reference to `MyString::capacity() const' /bin/ld: MyStringTests.cpp:(.text+0x12f): undefined reference to `MyString::size() const' /bin/ld: MyStringTests.cpp:(.text+0x224): undefined reference to `MyString::~MyString()' /bin/ld: MyStringTests.cpp:(.text+0x2aa): undefined reference to `MyString::~MyString()' collect2: error: ld returned 1 exit status gmake[2]: *** [CMakeFiles/MyStringTests.dir/build.make:99: MyStringTests] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:111: CMakeFiles/MyStringTests.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2 MyString ├── CMakeLists.txt ├── build │ └──... ├── tests │ └── MyStringTests.cpp └── src ├── main.cpp ├── MyString.h └── MyString.cpp мб что-то в CMakeLists.txt в корне что-то не так?

Kerneler
поставил GTest на дебиан с теми же файлами попробо...

Моя сентенция будет немного не по теме, но с gtest вечно какие-то проблемы. Если нет необходимости использовать именно его, лучше поищите аналоги

Kerneler- Автор вопроса
netricks
Моя сентенция будет немного не по теме, но с gtest...

это мой каприз захотелось изучить данный фреймворк для расширения имеющихся инструментов разработки он же самый популярный, потому в коммерции чаще всего встречается какой фреймворк можете посоветовать как аналог? 2catch встречал, но хз хорош ли он и сейчас проблема не в GTest, а в путях моего проекта / CMake

netricks
Моя сентенция будет немного не по теме, но с gtest...

gtest надо носить со своим проектом как субмодуль и компилировать вместе с проектом и тогда никаких проблем с ним не будет. например, https://github.com/anatoly-spb/cmake-googletest-example

Kerneler
это мой каприз захотелось изучить данный фреймворк...

Я использую doctest, но их такое жуткое множество с примерно одинаковыми возможностями, что таки есть из чего выбрать

Kerneler
это мой каприз захотелось изучить данный фреймворк...

Там мало отличий, 90% функционала везде одинаковы

Anatoly Shirokov
gtest надо носить со своим проектом как субмодуль ...

Тоже хотел это написать, но тем не менее никто не запрещает его использовать и в виде библиотеки

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта