01 2014 档案

摘要:相当于设置VS工程里面的:然后,为了链接成可执行文件,链接器就会到指定的目录寻找相应的库了。以下时Demo: 1 cmake_minimum_required(VERSION 2.8) 2 3 #set(CMAKE_C_COMPILER "D:\VS2008Release\VC\bin\amd64") 4 #set(CMAKE_CXX_COMPILER "D:\VS2008Release\VC\bin\amd64") 5 6 PROJECT(CONVERT) 7 8 add_definitions(-D_CONSOLE) 9 add_definition 阅读全文
posted @ 2014-01-17 11:00 foo__hack 阅读(1113) 评论(0) 推荐(0)
摘要:估计有半年没有做逆向工程了,IDA的汇编都看得不习惯了,特别是那些优化。无意中看wiki看到的一个PDF。觉得不错。http://yurichev.com/writings/RE_for_beginners-en.pdf 阅读全文
posted @ 2014-01-16 15:41 foo__hack 阅读(706) 评论(0) 推荐(0)
摘要:实际上他们两个可以达到一个目标(对于文件操作),但是又有本质上的区别,文档没有细看,但是一般利于项目的管理,使用install,install命令如果在cmake命令中没有指名install参数,实际上时不会执行的,只有在cmake命令中指名install,install命令(在CmakeLists.txt里)才会执行。Demo:cmake_minimum_required(VERSION 2.8)#set(CMAKE_C_COMPILER "D:\VS2008Release\VC\bin\amd64")#set(CMAKE_CXX_COMPILER "D:\VS 阅读全文
posted @ 2014-01-16 10:59 foo__hack 阅读(11371) 评论(0) 推荐(0)
摘要:Out of Source build呢,就是让Cmake产生的临时垃圾文件,不关乎于项目实际本身的文件放到一个目录里,一般我们把这个目录放在项目根目录(也可以认为是根CmakeLists.txt)下,取名为build。然后cd到build目录,cmake命令一下,注意Cmake命令的最后一个参数(路径参数),要写明: ../像这样:cmake -G"NMake Makefiles" ../Reference:http://stackoverflow.com/questions/9680420/looking-for-a-cmake-clean-command-to-cle 阅读全文
posted @ 2014-01-16 10:56 foo__hack 阅读(763) 评论(0) 推荐(0)
摘要:又是环境变量路径等问题,烦死人了。TIPS:请注意,控制台的窗口也有自己的环境变量,从系统环境变量和用户环境变量继承过来的,一个窗口(控制台)可以添加属于自己的环境变量(跟别的控制台窗口没关系)解决方案:从windows x64 win64 Command prompt中来对vcvarsall.bat文件来配置环境变量,然后也必须在windows x64 win64 Command prompt里面来运行cmake才能生效,不会出现文章标题和References里面所提到的错误。其实是我傻,就只是扫了下英文,所以悲剧了,没有看到必须用在windows x64 win64 Command pro 阅读全文
posted @ 2014-01-13 11:15 foo__hack 阅读(1117) 评论(0) 推荐(0)
摘要:对Lib项目的统一输出路径以下时解决方案:set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Bin)以上三行命令要写在根(root)CmakeLists.txt的里面.Reference:http://stackoverflow.com/questions/3702115/creating-a-dire 阅读全文
posted @ 2014-01-10 17:47 foo__hack 阅读(9487) 评论(0) 推荐(0)
摘要:直接找这个了,原来VS也可以makefile,在windows上解析makefile的软件叫NMAKE.exe打算用命令Cmake -G“NMake Makefiles”生成VS环境下Nmake的makefile文件nmake的时候还出现过NMake fatel Error U1077的错误,解决方案写入-I 忽略警告http://msdn.microsoft.com/en-us/library/dt309377.aspx发现一个Nmake的makefile文件编写教程:http://daway320.blog.163.com/blog/static/387836992009810955264 阅读全文
posted @ 2014-01-10 11:38 foo__hack 阅读(3099) 评论(0) 推荐(0)
摘要:我们有些时候会在#if #ifndef 等预编译命令里面看到_WIN32等定义的宏。但是有些宏定义,你即使通过Visual Studio右键的go to definitions 和go to decleration就是找不到宏定义的位置,其实是在vcproject,.sln工程文件的项目属性里面就定义好了。因为在VS中时GUI界面的操作,所以容易找出来,但是Cmake下,换了一种创建工程文件的思维方式。初学者就会被迷惑了。下图就是VS中设置预处理器定义的界面:在Cmake脚本中就用add_definitions命令来添加预处理器的宏定义References:http://www.cmake.o 阅读全文
posted @ 2014-01-08 11:45 foo__hack 阅读(12299) 评论(0) 推荐(0)
摘要:一般我们学习C语言的时候,include预编译的一般是.h头文件,虽然来说#include却是可以包含任意扩展名的文件,因为考虑到接口与实现分离的问题,头文件里面一般放函数,变量等声明,大家一般都推荐这个做法。这是一个好的编码习惯。但是今天我看IMageMagick开源项目里面看见了一个.c文件include了另一个.c文件,奇怪之下,搜索了一下stackoverflow,原来这个做类似于C中的goto,不推荐用,但是在适当的条件下,用法得当是非常有用的。(例如Linux 内核源代码里面大量的函数的Error Handle都用goto进行短跳,考虑缓存,程序局部性原理。长跳就相当影响性能)Re 阅读全文
posted @ 2014-01-02 11:16 foo__hack 阅读(696) 评论(0) 推荐(0)