Я хотел бы использовать math.h
в C++ Builder 10.1.2.Ошибка связи с "math.h" - Какая опция рассказать компоновщику для связи с ним?
К сожалению, при попытке вызвать одну из функций math.h
есть ошибка компоновщика. Я уже знаю, что (по историческим причинам) линкер должен быть явно установлен для ссылки на использование математики lib. See here.
В gcc это можно сделать с помощью флага -lm
.
Но что я должен войти в C++ Builder в Опции проекта =>C++ Linker =>Дополнительные параметры поле, чтобы сделать эту работу?
EDIT:
Так вот пример: Создать новый проект VCL и изменить код Form1 подобное:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <math.h>
//-------------------------------------------------------------------------- -
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
float a = floorf(0.0f);
}
//---------------------------------------------------------------------------
Это даст вам сообщение об ошибке компоновщика
[ilink32 Error] Error: Unresolved external '_floorf' referenced by C:\USERS\FLKO\DOCUMENTS\EMBARCADERO\STUDIO\PROJECTS\WIN32\DEBUG\UNIT1.OBJ
Так что мне нужно рассказать компоновщику ссылку с math
lib.
Но как?
Так в чем же ошибка? Неразрешенный символ? Несколько определенных символов? –
Некоторое время, но вы использовали «добавить к проекту», измените фильтр поиска на * .lib, выследите библиотеку и нажмите «ОК». – user4581301