楼主:
x049 (joker)
2015-03-30 17:36:01先提供linux版本为:Linux Mint 17 Qiana
小弟目前在做专题中需要用到字串转成位图印出,故参考以下网页
https://github.com/descent/progs/tree/master/cpp11_utf8
为了能编译,照着以下网页步骤安装了clang与libc++
http://www.cnblogs.com/codemood/p/3142848.html
有先编译hello world,顺利的成功了也能执行
clang++ -g -stdlib=libc++ -std=c++11 -I/usr/include/c++/v1/
-I/usr/include/c++/v1/include/ `freetype-config
作者:
lantw44 (#######################)
2015-03-30 22:37:00编 main1.o 的时候有加 -stdlib=libc++ 吗?
hello 程式码编译要两行似乎多此一举clang++ -o main1 main.cppp ..... 不就可以了 ?若你没有其他特殊多个程式码要编译,不需要 -c 然后分开
http://i.imgur.com/nV5c9Ga.png另外你的问题我比较想知道的是,你编译一般的 c++ 程式能够正常工作吗?
楼主:
x049 (joker)
2015-03-30 23:51:00我是因为这个程式才去装linux ,还是新手看不太懂指令编译k大说的编译一般c++程式是说用上面clang++指令编译吗?
这样说好了,原本没有修改的版本,你可以正常编译吗是的,用 clang++ 编译一般的 c++ code
楼主:
x049 (joker)
2015-03-31 00:08:00我试过只要有用到 -stdlib=libc++ 就会跳出一样的错误用c++版本的hello world也会跳出错误
作者:
lantw44 (#######################)
2015-03-31 00:14:00有点好奇是为了什么功能才装 libc++ 的吗?
楼主:
x049 (joker)
2015-03-31 00:18:00在 wstring2utf8.h 里有个<codecvt> 好像只有clang libc++有k大的那张图我有照着编译,第一个原版的编译跳出了好几行未参考定义到,第二个编译结果错误码与图上的差不多第3个结果跟第一个一样跳出好几行未参考定义到
作者:
lantw44 (#######################)
2015-03-31 00:27:00用 clang++ -v 看看 #include 搜寻路径感觉可能他先搜到 libstdc++ 的了
楼主:
x049 (joker)
2015-03-31 00:35:00作者:
lantw44 (#######################)
2015-03-31 00:39:00clang++ -v 后面接本来拿来编译的参数-I 那些也都要,真的有编译东西它才会显示搜寻路径
楼主:
x049 (joker)
2015-03-31 00:51:00作者:
sunneo (艾斯寇德)
2015-03-31 00:52:00因为codecvt不在标准内,你该考虑boost的utf_to_utf
楼主:
x049 (joker)
2015-03-31 00:58:00如果使用boost的utf_to_utf是单纯更动wstring2utf8.h档吗?
楼主:
x049 (joker)
2015-03-31 01:44:00看不太懂要加哪些参数我打了 clang++ -o main1 main1.cpp -stdlib=libc++ hellowod.cpp -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgcc 但出现找不到-lc++abi 上面那个helloworld.cpp多打的
为何你要加上 -nodefaultlibs 这个参数 @@
楼主:
x049 (joker)
2015-03-31 02:56:00我看不太懂,照网页上的参数打在Using libc++ in your programs的linux下有两种我是参考那个的
没关系,一般不用,不过你后面有指定其他的 lib 就还好另外感觉你这程式好像搞很久了...我这边测试过都是在 mac os x 环境,clang 本身没问题clang 是 xcode 提供的,都可以正确编译
作者:
lantw44 (#######################)
2015-03-31 03:09:00我在 FreeBSD 测试,clang 默认用 libc++ 也很正常
boost 有替代方案,程式码简单改一下就好只是重点你系统还需要有一份 boost
楼主:
x049 (joker)
2015-03-31 03:10:00主要都卡在linux跟clang++才编译不过去吧,main的程式码倒是读懂了
这样吧.. 我刚刚帮你改一下改用 boost
http://x.co/8f16Z 这是那个 wstring2utf8.h 档案内容记得你应该会用 apt-get install 装上 boost 相关套件我这边是装上 libboost1.55-dev 就可以了
楼主:
x049 (joker)
2015-03-31 03:23:00感谢大大,小弟正在安装boost中,想问编译时需要怎么下指令呢
忘记说还要装 libboost 这个 lib, 上面那是标头档案最后 -l 不要忘记加上像是: -lboost_thread结论我这边 apt 装上 libboost1.55-dev libboost1.55都懒用 mac os x or freebsd 应该也是解法 XD
楼主:
x049 (joker)
2015-03-31 05:13:00终于成功了,感谢大大,小弟在这里linux跟clang卡好久了