Здравейте! Вероятно използвате блокиращ рекламите софтуер. В това няма нищо нередно, много хора го правят.

     Но за да помогнете този сайт да съществува и за да имате достъп до цялото съдържание, моля, изключете блокирането на рекламите.

  Ако не знаете как, кликнете тук

КDevelop "-lm" опция - как ?

feed Всякакви програми и проблемите свързани с тях.
Нова тема Отговори
Потребителски аватар
cprog
Ветеран
Ветеран
Мнения: 1417
Регистриран: нед юли 19, 2015 08:19
Репутация: 12926
пол: Мъж

КDevelop "-lm" опция - как ?

Мнение от cprog »

Здравейте,
Разучавам KDevelop. За тази цел написах тестова програма, която ползва sqrt. За да се компилира програмата, трябва да я компилирам с "-lm" опция(а именно подаването на параметри за билдване чрез системата на KDevelop - CMake - се опитвам да разбера). Въпросът е как ? В CMakeLists добавих

Код: Избери всички

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lm")
. Но пак дава грешка: undefined reference to `sqrt'. Файлът math.h е включен.
Прочетено: 188 пъти
CPU~Dual core AMD Athlon 64 X2 5200+ (-MCP-) speed~2700 MHz (max) Kernel~4.15.0-33-generic x86_64 Up~1 day Mem~4869.6/7976.7MB HDD~2400.5GB(45.8% used) Procs~313 Client~Shell inxi~2.3.56
Потребителски аватар
bvbfan
Почетен член
Почетен член
Мнения: 2693
Регистриран: нед юни 14, 2015 07:02
Репутация: 17396
пол: Мъж

Re: КDevelop "-lm" опция - как ?

Мнение от bvbfan »

CMAKE_CXX_FLAGS са флагове при компилиране, например -std=c++11. Докато на теб ти трябва:

Код: Избери всички

add_executable(executable source.cpp)
target_link_libraries(executable m)
Може и така

Код: Избери всички

set(CMAKE_EXE_LINKER_FLAGS "-lm")
Библиотеката е 'm' -l означава, че е за линкера :)
от p4p » пет окт 07, 2016 19:13 написа:В тоя раздел нищо не разбираме от Windows. :)
Потребителски аватар
cprog
Ветеран
Ветеран
Мнения: 1417
Регистриран: нед юли 19, 2015 08:19
Репутация: 12926
пол: Мъж

Re: КDevelop "-lm" опция - как ?

Мнение от cprog »

Мда стана.Благодаря :)
Щото като е от команден ред и си подавам gcc -lm и си прави нещата
и не се усетих, че сега ще иска разделно.Така е за линкера :)
CPU~Dual core AMD Athlon 64 X2 5200+ (-MCP-) speed~2700 MHz (max) Kernel~4.15.0-33-generic x86_64 Up~1 day Mem~4869.6/7976.7MB HDD~2400.5GB(45.8% used) Procs~313 Client~Shell inxi~2.3.56
Потребителски аватар
Montoya
Модератор
Модератор
Мнения: 20591
Регистриран: съб фев 15, 2014 11:32
Репутация: 112147
пол: Мъж

Re: КDevelop "-lm" опция - как ?

Мнение от Montoya »

Страшно много ви се кефя, че ги разбирате тия неща, евала пичове :уоршип:
AsusVivoBook17
CPU 11th Gen Intel(R) Core(TM) i3-1115G4 [/color]RAM 16000MB DDR4; VC-Intel UHD Graphics G4
Потребителски аватар
bvbfan
Почетен член
Почетен член
Мнения: 2693
Регистриран: нед юни 14, 2015 07:02
Репутация: 17396
пол: Мъж

Re: КDevelop "-lm" опция - как ?

Мнение от bvbfan »

Няма нищо сложно, като се занимаваш няколко години, всеки ден и то си става - автоматично :) Иначе KDevelop е №1 :)
от p4p » пет окт 07, 2016 19:13 написа:В тоя раздел нищо не разбираме от Windows. :)
Нова тема Отговори

Върни се в “Софтуер”