Я определил источник & заголовок — «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
Без реальной ошибки будет трудно сказать.
Я создал один пример lib и попытался связать его. Чтобы это работало, я изменил строку ниже.
cl / O2 t.cpp / link MathCore.lib
в
cl / O2 t.cpp / MDd MathCore.lib
Было бы неплохо, если вы запустите * .bat (в вашем случае run.bat) и вставите сюда ошибку.
[PS: Я не могу добавить комментарий, поэтому добавляю ответ]Других решений пока нет …