2007年5月9日星期三

路径中的\和/

    刚才下载了一个openssl编译,按照Install.W32给出的说明进行编译
    perl Configure VC-WIN32 --prefix=c:/some/openssl/dir
    ms\do_masm
    nmake -f ms\ntdll.mak
 
    其中第一行命令,我按照Windows的习惯写的路径,即变成了
    perl Configure VC-WIN32 --prefix=c:\some\openssl\dir
    呵呵,生成的Makefile会定义一个宏
    OPENSSLDIR=c:\some\openssl\dir/ssl
    问题出来了,只要碰到使用宏OPENSSLDIR的地方都会报C2220错误,并提示某些特定的字符没有定义
   
    后来仔细研究了一下,都是路径中的'\'惹的祸!
    原来在c/c++当中'\'是转义字符,所以c:\some\openssl\dir/ssl中的s被转义了,偏偏\s这个东东是没有的!
    所以编译通不过就是自然的啦!!
    将第一行命令中的'\'替换为'/',万事ok!
 
    在网上简单的搜了一下,碰到这个问题的不再少数,但都没有想到正确的解决方法! 有些解决方案设置要修改代码!

张志强
2007-05-09

没有评论: