Как скомпилировать визуальную программу на C ++ с дополнительными библиотеками

Я определил источник & заголовок — «MathCore.h» & «MathCore.cpp» MathCore.h как показано ниже:

#ifdef MATHCORE_EXPORTS
#define MATHCORE_API __declspec(dllexport)
#else
#define MATHCORE_API __declspec(dllimport)
#endif

MATHCORE_API bool isPowOf_Two(unsigned int n);
MATHCORE_API bool isFormOf_tpnmo(unsigned int n);
MATHCORE_API int isolate_LST( int x);// This class is exported from the MathCore.dll
class MATHCORE_API MathEngine {
public:
MathEngine(void);
// TODO: add your methods here.
};

extern MATHCORE_API int nMathCore;

MATHCORE_API int fnMathCore(void);

и я сгенерировал lib — «MathCore.lib» и соответствующий dll- «MathCore.dll» из Visual Studio 2008, затем я создал исходный файл C ++ — «t.cpp» в другой папке, которая использует функции, определенные в MathCore, для простоты я поместите MathCore.lib и MathCore.dll в одну папку.
t.cpp следующим образом

#pragma comment(lib, "MathCore.lib")
#include <iostream>
#include "MathCore.h"
using namespace std;

MATHCORE_API bool isPowOf_Two(unsigned int n);
MATHCORE_API bool isFormOf_tpnmo(unsigned int n);

int main()
{

while(1){
unsigned int x;
cin>>x;
cout<<isPowOf_Two(x)<<"\n";
cout<<x<<"\n";
}
system("Pause");
return 0;
}

введите описание изображения здесь

Моя проблема заключается в том, что … без использования Visual Studio я хочу скомпилировать t.cpp, используя пакетный файл, скажем — «run.bat», поэтому я включил «vcvarsall.bat» и «vcvars32.bat» в одну и ту же исходную папку, мой «запуск». такие команды «летучая мышь» ….

@echo off
call "vcvarsall.bat"call "vcvars32.bat"echo off
cl /O2 t.cpp /link MathCore.lib
@if ERRORLEVEL == 0 (
goto good
)

@if ERRORLEVEL != 0 (
goto bad
)

:good
echo "clean compile"echo %ERRORLEVEL%
goto end

:bad
echo "error or warning"echo %ERRORLEVEL%
goto end

:end

когда я запускаю «run.bat», он создает «t.obj» без «t.exe», я думаю, что он не связывает MathCore.lib, я хочу знать, как компилировать визуальный исходный код C ++ с дополнительными библиотеками и включать в командную строку I chekc Визуальная студия аргументов командной строки не помогла мне решить эту проблему.

ПОЖАЛУЙСТА, ЛЮБОЙ ЗНАЙТЕ ТОЧНЫЕ КОМАНДНЫЕ СТРУКТУРЫ ДЛЯ СОСТАВЛЕНИЯ ВИЗУАЛЬНОГО ФАЙЛА ИСТОЧНИКА C ++ С НЕОБХОДИМЫМИ ЛИБАМИ и ФАЙЛАМИ ЖАТКИ
пожалуйста, обратитесь http://msdn.microsoft.com/en-us/library/610ecb4h.aspx

1

Решение

Без реальной ошибки будет трудно сказать.

Я создал один пример lib и попытался связать его. Чтобы это работало, я изменил строку ниже.

cl / O2 t.cpp / link MathCore.lib

в

cl / O2 t.cpp / MDd MathCore.lib

Было бы неплохо, если вы запустите * .bat (в вашем случае run.bat) и вставите сюда ошибку.

[PS: Я не могу добавить комментарий, поэтому добавляю ответ]
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]