2014-09-17 4 views
0

пожалуйста, не могли бы вы помочь мне, как мы связываем libm математическую библиотеку в Microsoft Visual Studio 2010,Как связать библиотеку libm в Microsoft Visual Studio 2010

для того, чтобы использовать некоторые тригонометрические функции в программе гр?

+0

Создание проекта в Visual Studio 2010 обычно загружает для вас. Какое фактическое сообщение об ошибке вы видите? – user3454439

+0

cos is undefined – user3466199

+0

Что вы сделали до сих пор? добавьте файлы .lib с другими библиотеками MSVC 2010 в папку C: /..../ VC/include. Затем, если есть DLL-файлы, добавьте файлы .dll в папку C:/Windows .../System32. Чтобы связать, с MSVC 2010 перейдите в меню «Свойства» -> «Linker-> Input-> Additional Dependencies», затем добавьте файлы libm.lib. – Juniar

ответ

1

Это необходимо только поставить

#include <math.h> 

в вашей программе.

Следующая компилируется без ошибок или предупреждений, в новый пустой проект в VS2010:

#include <stdio.h> 
#include <math.h> 

int main(){ 
    double a,b,c; 
    char d; 
    a = 0.0; 
    b = cos(a); 
    c = sqrt(b); 
    printf("cos(%lf) = %lf, sqrt(cos(%lf)) = %lf\n", a, b, a, c); 
    d = getchar(); 
    return 0; 
} 

Вот VS2010 скомпилировать выход:

1>------ Rebuild All started: Project: test3, Configuration: Debug Win32 ------ 
1> source.c 
1> test3.vcxproj -> c:\users\andy\documents\visual studio 2010\Projects\test3\Debug\test3.exe 
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

Если я опускаю #include <math.h> я получаю это:

1>------ Rebuild All started: Project: test3, Configuration: Debug Win32 ------ 
1> source.c 
1>c:\users\andy\documents\visual studio 2010\projects\test3\test3\source.c(9): warning C4013: 'cos' undefined; assuming extern returning int 
1>c:\users\andy\documents\visual studio 2010\projects\test3\test3\source.c(10): warning C4013: 'sqrt' undefined; assuming extern returning int 
1> test3.vcxproj -> c:\users\andy\documents\visual studio 2010\Projects\test3\Debug\test3.exe 
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

Никаких изменений в библиотеках VS2010 не требуется. связаны между собой.

Также нет красных подчеркиваний (ошибок intellisense).

+0

Ваша программа работает отлично, но в моем случае функция cos находится в другой функции (function_name.c), а функция cos все еще подчеркнута красным – user3466199

+0

Вам нужно положить '#include ' вверху любого файла, в котором вы используете 'cos'. Поэтому добавьте его в файл 'function_name.c'. –

+0

Да, это правильно, проблема решена, спасибо большое – user3466199

0

Я думаю, что знаю вашу проблему. Это не проблема компоновщика.

Это имя файла заголовка. Например, чтобы использовать математическую библиотеку, введите #include <math.h>. Если вы наберете #include <math>, вы получите не может включать ошибку файла.

Создайте проект Visual C++ в Visual Studio 2010, как обычно. Используйте следующие испытания:

#include <math.h> 
#include <iostream> 
using namespace std; 

int main(void) 
{ 
    double test = 9.0; 
    double result = sqrt(test); 

    cout << "test = " << test << " result = " << result << endl; 
} 

И результат:

test = 9 result = 3 

Надеется, что это помогает.

+0

к сожалению, не в моем случае, есть красная линия под функцией sqrt? – user3466199

+0

Я хочу программу в c не C++ – user3466199

+0

Чтобы скомпилировать программу C, перейдите в Properties-> C/C++ -> Advanced->, затем выберите «Скомпилировать как код C» (/ TP). – Juniar

 Смежные вопросы

  • Нет связанных вопросов^_^