我定義源&頭附加庫 - 「MathCore.h」 & 「MathCore.cpp」 MathCore.h如下代碼:如何編譯視覺C++程序與
#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「和Visual Studio 2008中相應的dll-」MathCore.dll「,然後我在另一個使用MathCore中定義的函數的文件夾中創建了C++源文件 - 」t.cpp「,爲了簡單起見,我將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’,以相同的源文件夾,我的‘的run.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++源代碼和附加的庫,並且包含在命令行中chekc visual studio commandline arguements這不能幫助我解決這個問題。
請人知道確切的COMMANDLINE ARGUEMENTS編譯VISUAL C++源文件所需要庫和頭文件 請參閱http://msdn.microsoft.com/en-us/library/610ecb4h.aspx
,[MSBuild的(http://msdn.microsoft.com/en-us/library/dd293626。 aspx)可能更容易。你可以配置你的項目屬性,讓它在IDE中編譯,然後自動完成構建。 –
我想在不使用Visual Studio的情況下編譯源代碼,我想執行一個蝙蝠並執行這些操作..請幫助..鏈接庫存在問題我提及這些東西 http://msdn.microsoft.com/en-us /library/610ecb4h.aspx –
這就是MSBuild所做的 - 你根本不運行IDE,你可以從'.bat'文件構建。 –