Build service Make命令总结

Build service可以用来编译各种平台的代码,例如win32/64,Linux,Phar Lap等,可以用来生成Host上运行的DLL以及Client上运行的Daemon。

一些常用指令如下:

  1. 编译driver代码,生成LabVIEW dll或者API dll
    首先在perforce中,选中dev或者trunk库,右键open command window here,setupEnv.bat
make nislsclvapiwin32Udebug BUILD_DEPS:=1
make nislsclvapiwin32Urelease BUILD_DEPS:=1
make nislscapiwin32Udebug BUILD_DEPS:=1
make nislscapiwin32Urelease BUILD_DEPS:=1
make nislsccmntpharlap BUILD_DEPS:=1

编译Linux RT target上运行的动态链接库

make TARGET = nislscapi/linuxU/x64/gcc-4.7-oe/debug

make codegen

make codegen

make TARGET = nislscgen/win32U/i386/msvc-14.0/release
  1. 编译deamon
    第一步查看各种平台的编译命令make actualTargets
    编译daemon make TARGET = nislscdmn/linuxU/armv7-a/gcc-4.7-oe/debug BUILD_DEPS:=1

  2. 调试代码 (driver or daemon)
    使用以上命令,编译出dll或daemon (提前设置断点),dll替换路径 (Win64 LV 32bit: C:\Windows\SysWOW64) 下的dll文件,在Visual Studio project属性Configuration properties->Debugging->Command选择C:\Program Files (x86)\National Instruments\LabVIEW 2016\LabVIEW.exe。打开LabVIEW,运行vi触发断点,进行调试。(扩展阅读:GDB调试,打话
    对于daemon调试稍有不同,需要替换target中已有的daemon。(扩展阅读:替换daemon步骤)

使用make vcproj命令,可以在指定文件夹下生成Visual Studio可以打开的project,方便浏览调试。

仓库中的share文件包含了共享代码,例如caps,error,sharedcmn,当修改了error code之后需要重新编译以便在export中有对应的代码。 (扩展阅读:build service),使用命令如下:

make debug

或者最简洁的make nislscsharedgen命令,只生成供其他代码调用的部分即可,不运行单元测试。

每次重新编译之前,可以使用make clean命令清理之前build出的文件,不会受到之前的错误影响。

有时在编译过程中遇到c:/Perforce/build/tools/misc/export/19.0/19.0.0a1/tools/win32/i386/mt.exe -nologo -manifest ./objects/nislscapi/win32U/i386/msvc-14.0/debug/nislscapi.dll.manifest -outputresource:./objects/nislscapi/win32U/i386/msvc-14.0/debug/nislscapi.dll;2 status : 5 info : The manifest tool returned a non-zero status code. Please resolve the manifest error and run Make again.问题,这是由于"mt.exe"文件过期,需要更新该文件。

  1. Phar Lap平台不支持C++ 11的新特性,因此代码写完后应当在phar lap平台上编译一遍,需要知道该平台的编译命令。
    操作如下:

a. 查找有哪些平台和组件编译命令

make actualTargets
nislscgen/linuxU/armv7-a/gcc-4.7-oe/release
nislscgen/linuxU/x64/gcc-4.7-oe/release
nislscgen/pharlap/i386/msvc90/release
nislscgen/win32U/i386/msvc-14.0/release
nislsccfgt/linuxU/armv7-a/gcc-4.7-oe/release
nislsccfgt/linuxU/armv7-a/gcc-4.7-oe/debug
nislsccfgt/linuxU/x64/gcc-4.7-oe/release
nislsccfgt/linuxU/x64/gcc-4.7-oe/debug
nislsccfgt/pharlap/i386/msvc90/release
nislsccfgt/pharlap/i386/msvc90/debug
nislsccfgt/win32U/i386/msvc-14.0/release
nislsccfgt/win32U/i386/msvc-14.0/debug
nislsccfgt/win64U/x64/msvc-14.0/release
nislsccfgt/win64U/x64/msvc-14.0/debug
nislsccmnt/linuxU/armv7-a/gcc-4.7-oe/release
nislsccmnt/linuxU/armv7-a/gcc-4.7-oe/debug
nislsccmnt/linuxU/x64/gcc-4.7-oe/release
nislsccmnt/linuxU/x64/gcc-4.7-oe/debug
nislsccmnt/pharlap/i386/msvc90/release
nislsccmnt/pharlap/i386/msvc90/debug
nislsccmnt/win32U/i386/msvc-14.0/release
nislsccmnt/win32U/i386/msvc-14.0/debug
nislsccmnt/win64U/x64/msvc-14.0/release
nislsccmnt/win64U/x64/msvc-14.0/debug
nislsclvapistub/linuxU/armv7-a/gcc-4.7-oe/release
nislsclvapistub/linuxU/x64/gcc-4.7-oe/release
nislsclvapistub/pharlap/i386/msvc90/release
nislsclvapistub/win32U/i386/msvc-14.0/release
nislsclvapistub/win64U/x64/msvc-14.0/release
nislscapit/linuxU/armv7-a/gcc-4.7-oe/release
nislscapit/linuxU/armv7-a/gcc-4.7-oe/debug
nislscapit/linuxU/x64/gcc-4.7-oe/release
nislscapit/linuxU/x64/gcc-4.7-oe/debug
nislscapit/pharlap/i386/msvc90/release
nislscapit/pharlap/i386/msvc90/debug
nislscapit/win32U/i386/msvc-14.0/release
nislscapit/win32U/i386/msvc-14.0/debug
nislscapit/win64U/x64/msvc-14.0/release
nislscapit/win64U/x64/msvc-14.0/debug
nislscmsgt/linuxU/armv7-a/gcc-4.7-oe/release
nislscmsgt/linuxU/armv7-a/gcc-4.7-oe/debug
nislscmsgt/linuxU/x64/gcc-4.7-oe/release
nislscmsgt/linuxU/x64/gcc-4.7-oe/debug
nislscmsgt/pharlap/i386/msvc90/release
nislscmsgt/pharlap/i386/msvc90/debug
nislscmsgt/win32U/i386/msvc-14.0/release
nislscmsgt/win32U/i386/msvc-14.0/debug
nislscmsgt/win64U/x64/msvc-14.0/release
nislscmsgt/win64U/x64/msvc-14.0/debug
nislsccapit/linuxU/armv7-a/gcc-4.7-oe/release
nislsccapit/linuxU/armv7-a/gcc-4.7-oe/debug
nislsccapit/linuxU/x64/gcc-4.7-oe/release
nislsccapit/linuxU/x64/gcc-4.7-oe/debug
nislsccapit/pharlap/i386/msvc90/release
nislsccapit/pharlap/i386/msvc90/debug
nislsccapit/win32U/i386/msvc-14.0/release
nislsccapit/win32U/i386/msvc-14.0/debug
nislsccapit/win64U/x64/msvc-14.0/release
nislsccapit/win64U/x64/msvc-14.0/debug
nislscdmn/linuxU/armv7-a/gcc-4.7-oe/release
nislscdmn/linuxU/armv7-a/gcc-4.7-oe/debug
nislscdmnt/linuxU/armv7-a/gcc-4.7-oe/release
nislscdmnt/linuxU/armv7-a/gcc-4.7-oe/debug
nislscdmnt/linuxU/x64/gcc-4.7-oe/release
nislscdmnt/linuxU/x64/gcc-4.7-oe/debug
nislscapi/linuxU/armv7-a/gcc-4.7-oe/release
nislscapi/linuxU/armv7-a/gcc-4.7-oe/debug
nislscapi/linuxU/x64/gcc-4.7-oe/release
nislscapi/linuxU/x64/gcc-4.7-oe/debug
nislscapi/pharlap/i386/msvc90/release
nislscapi/pharlap/i386/msvc90/debug
nislscapi/win32U/i386/msvc-14.0/release
nislscapi/win32U/i386/msvc-14.0/debug
nislscapi/win64U/x64/msvc-14.0/release
nislscapi/win64U/x64/msvc-14.0/debug
nislsccapi/linuxU/armv7-a/gcc-4.7-oe/release
nislsccapi/linuxU/armv7-a/gcc-4.7-oe/debug
nislsccapi/linuxU/x64/gcc-4.7-oe/release
nislsccapi/linuxU/x64/gcc-4.7-oe/debug
nislsccapi/pharlap/i386/msvc90/release
nislsccapi/pharlap/i386/msvc90/debug
nislsccapi/win32U/i386/msvc-14.0/release
nislsccapi/win32U/i386/msvc-14.0/debug
nislsccapi/win64U/x64/msvc-14.0/release
nislsccapi/win64U/x64/msvc-14.0/debug
nislsclvapi/linuxU/armv7-a/gcc-4.7-oe/release
nislsclvapi/linuxU/armv7-a/gcc-4.7-oe/debug
nislsclvapi/linuxU/x64/gcc-4.7-oe/release
nislsclvapi/linuxU/x64/gcc-4.7-oe/debug
nislsclvapi/pharlap/i386/msvc90/release
nislsclvapi/pharlap/i386/msvc90/debug
nislsclvapi/win32U/i386/msvc-14.0/release
nislsclvapi/win32U/i386/msvc-14.0/debug
nislsclvapi/win64U/x64/msvc-14.0/release
nislsclvapi/win64U/x64/msvc-14.0/debug
nislscplwa/pharlap/i386/msvc90/release
nislscplwa/pharlap/i386/msvc90/debug
nislscxmpl/linuxU/armv7-a/gcc-4.7-oe/release
nislscxmpl/linuxU/armv7-a/gcc-4.7-oe/debug
nislscxmpl/linuxU/x64/gcc-4.7-oe/release
nislscxmpl/linuxU/x64/gcc-4.7-oe/debug
nislscxmpl/pharlap/i386/msvc90/release
nislscxmpl/pharlap/i386/msvc90/debug
nislscxmpl/win32U/i386/msvc-14.0/release
nislscxmpl/win32U/i386/msvc-14.0/debug
nislscxmpl/win64U/x64/msvc-14.0/release
nislscxmpl/win64U/x64/msvc-14.0/debug
(107 targets in total)

b. 想要编译的是nislscapi/pharlap/i386/msvc90/release

make TARGET:=nislsccapi/pharlap/i386/msvc90/release BUILD_DEPS:=1
  1. 常见错误
    a. no rule to make target
    在这里插入图片描述
SOURCE := \
   nislsccapi/nislsccapi.cpp \
   nislsccapi/CLibrary.cpp \
   nislsccapi/CCommandReference.cpp \
   nislsccapi/CPropertyReference.cpp \
   nislsccapi/cGlobals.cpp \
   nislsccapi/CSession.cpp \
   nislsccapi/cUtilities.cpp \
   nislsccapit/CLibraryTest.cpp \
   nislsccapit/CUtilitiesTest.cpp \
   nislsccapit/CustomFakeFunctions.cpp \
   nislsccapit/CFunctionTest.cpp \
   nislsccapit/MockSlscApi.cpp \

.mak文件第一项路径写成了nislscapi

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值