我見過的很好編譯的開源程式

lt發表於2016-10-10

0.sqlite 只要下載 amalgamation 原始碼,並按照http://sqlite.org/howtocompile.html提示的方法,在vc下輸入cl命令即可.

cl shell.c sqlite3.c -Fesqlite3.exe

若要編譯dll檔案

cl sqlite3.c -link -dll -out:sqlite3.dll

1.luajit

D:\vs2012>vc
PATH=D:\vs2012\vc\bin\..\..\winsdk\v7.1A\\bin;D:\vs2012\vc\bin\..\BIN;C:\Windows\system32;C:\Windows;D:\vs2012\bin;D:\vs2012\build\b
in;G:\strawberry\perl\bin;g:\GNUWin32\bin

INCLUDE=D:\vs2012\vc\bin\..\..\winsdk\v7.1A\\include;D:\vs2012\vc\bin\..\include;D:\vs2012\include;D:\vs2012\build\include;D:\vs2012
\compat;D:\vs2012\vc\compat

LIB=D:\vs2012\vc\bin\..\..\winsdk\v7.1A\\lib;D:\vs2012\vc\bin\..\lib;D:\vs2012\lib;D:\vs2012\build\lib

用於 x86 的 Microsoft (R) C/C++ 優化編譯器 17.00.51106.1 版版權所有(C) Microsoft Corporation。保留所有權利。

用法: cl [ 選項... ] 檔名... [ /link 連結選項... ]
D:\vs2012>cd d:\LuaJIT-2.0.4

d:\LuaJIT-2.0.4\src>msvcbuild

d:\LuaJIT-2.0.4\src>cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE host\minilua.c
minilua.c

d:\LuaJIT-2.0.4\src>link /nologo /out:minilua.exe minilua.obj

d:\LuaJIT-2.0.4\src>if exist minilua.exe.manifest mt /nologo -manifest minilua.exe.manifest -outputresource:minilua.exe

d:\LuaJIT-2.0.4\src>minilua ..\dynasm\dynasm.lua -LN -D WIN -D JIT -D FFI -o host\buildvm_arch.h vm_x86.dasc

d:\LuaJIT-2.0.4\src>cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /I "." /I ..\dynasm host\buildvm*.c
buildvm.c
buildvm_asm.c
buildvm_fold.c
buildvm_lib.c
buildvm_peobj.c
正在生成程式碼...

d:\LuaJIT-2.0.4\src>link /nologo /out:buildvm.exe buildvm*.obj

d:\LuaJIT-2.0.4\src>if exist buildvm.exe.manifest mt /nologo -manifest buildvm.exe.manifest -outputresource:buildvm.exe

d:\LuaJIT-2.0.4\src>buildvm -m peobj -o lj_vm.obj
。。。
lib_string.c
正在生成程式碼...
正在編譯...
lib_table.c
正在生成程式碼...

d:\LuaJIT-2.0.4\src>link /nologo /DLL /out:lua51.dll lj_*.obj lib_*.obj
   正在建立庫 lua51.lib 和物件 lua51.exp

d:\LuaJIT-2.0.4\src>if exist lua51.dll.manifest mt /nologo -manifest lua51.dll.manifest -outputresource:lua51.dll;2

d:\LuaJIT-2.0.4\src>cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE luajit.c
luajit.c

d:\LuaJIT-2.0.4\src>link /nologo /out:luajit.exe luajit.obj lua51.lib

d:\LuaJIT-2.0.4\src>if exist luajit.exe.manifest mt /nologo -manifest luajit.exe.manifest -outputresource:luajit.exe

=== Successfully built LuaJIT for Windows/x86 ===

用編譯出來的luajit程式做測試

\timer D:\LuaJIT-2.0.4\src\luajit polycube-solver.lua problems/soma-cube.txt >soma-jit.txt

\timer lua-win\luajit polycube-solver.lua problems/soma-cube.txt >soma-jit2.txt

結果:
soma-jit.txt
Solution 480
+--+--+--+  +--+--+--+  +--+--+--+
|4^|4^|4S|  |4^|4>|4>|  |4T|4L|4>|
+--+--+--+  +--+--+--+  +--+--+--+
|4^|4<|4S|  |4T|4<|4S|  |4T|4L|4>|
+--+--+--+  +--+--+--+  +--+--+--+
|3L|4<|4<|  |3L|3L|4S|  |4T|4L|4L|
+--+--+--+  +--+--+--+  +--+--+--+
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

Kernel Time  =     0.000 =    0%
User Time    =     0.624 =   90%
Process Time =     0.624 =   90%
Global Time  =     0.691 =  100%

soma-jit2.txt
Solution 480
+--+--+--+  +--+--+--+  +--+--+--+
|4^|4^|4S|  |4^|4>|4>|  |4T|4L|4>|
+--+--+--+  +--+--+--+  +--+--+--+
|4^|4<|4S|  |4T|4<|4S|  |4T|4L|4>|
+--+--+--+  +--+--+--+  +--+--+--+
|3L|4<|4<|  |3L|3L|4S|  |4T|4L|4L|
+--+--+--+  +--+--+--+  +--+--+--+
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

Kernel Time  =     0.015 =    0%
User Time    =     5.257 =   98%
Process Time =     5.272 =   98%
Global Time  =     5.352 =  100%

相關文章