代碼從windows下visual studio到andriod平臺(tái)遷移實(shí)現(xiàn)步驟
代碼從windows下visual studio到andriod平臺(tái)遷移實(shí)現(xiàn)步驟:
前言
前言也是遷言,從windows的visual studio 2012平臺(tái)遷移到Android平臺(tái)上,需用修改挺多的代碼和需用注意地方。
我們當(dāng)然的平臺(tái)當(dāng)初就考慮了其他平臺(tái)跨平臺(tái)的應(yīng)用問(wèn)題,所以一開(kāi)始在windows下就是用cmake來(lái)完成工程的建立的,cMakeLists.txt文件都做了一些處理,但是此時(shí)只是更針對(duì)或說(shuō)首先保證windows下的編譯和使用。
謹(jǐn)此做個(gè)記錄。
1. modify cMakeLists.txt file,add android define and macro.
2.cmake ./../
Build files have been written to: /home/andriod_a/build
3.size_t problem add <cstddef> head file.
4.error: extra qualification 'rw::scoped_lock::' on member 'scoped_lock' [-fpermissive]
remove the class identifier.
5. memcpy define in <string.h> .so change it.
6.no match for 'operator=' in 'inverse = rw_math::matrix3f::operator*(float) const((1.0e+0f / det))'
//inverse = inverse * (1.0f/det);
matrix3f temp = inverse * (1.0f/det);
inverse = temp;
7.no match for 'operator=' in 'rot_mat = rw_math::matrix4f::make_rotation_matrix(
matrix4f matrix4f_tmp = make_rotation_matrix(axis_,angle_in_rad_);
rot_mat = matrix4f_tmp;
8.warning: inline function 'double const& rw_math::vector3d::operator[](int) const' used but never defined [enabled by default]
9.error: 'memcmp' was not declared in this scope
#include <string.h>
10.initializing argument 2 of 'char* strncat(char*, char const*, size_t)' [-fpermissive]
11.compile jpeg library.
copy source code,then write or change cMakeLists.txt,then create a buid file,open terminal in the new build file.
cmake ./../ ,the last is make ,and it will show u.
12.multiple definition of 'std::__lg(int)
i define the inline,so error.
13. the inline function which must achieve in head file ,and could not in *.cpp file. or,u can delete inline word in head files.
14. conflicts with previous declaration 'typedef class rw::rw_shared_ptr<rw_json::json_value_iterator> rw_json::json_value_iterator::ptr'
multidefine .
15.no matching function for call to 'transform()
transform(ext_.begin(), ext_.end(), ext_.begin(), ::tolower);
16. temp varity can't assign to non-const reference.
rw_shared_ptr_shadow temp_shadow = entity_.to_shared_ptr_shadow();
pt2model_entity_define::ptr temp_ptr = temp_shadow.to_shared_ptr<pt2model_entity_define>();
build_pt2model_entity(_pGeometry,_pSymbol,temp_ptr);
17. fatal error: json\json.h: No such file or director
#include <json\json.h> ----->#include <json/json.h>
18. fatal error: zlib\\zconf.h: No such file or directory
----->#include "zlib/zlib.h"
19. error: cannot pass objects of non-trivially-copyable type 'const mapped_type {aka const struct std::basic_string<char>}' through '.
--->(content_type_field).c_str();
20.537:49: error: invalid initialization of non-const reference of type 'std::string& {aka std::basic_string<char>&}' from an rvalue of type 'std::string {aka std::basic_string<char>}'
string temp_str = request_.get()->get_url();
string& tmp_req_url = temp_str;
21. error: no matching function for call
temp variaty problem. make a temp variaty.
matrix4d temp_mat = world_mat * t_mat;
render_system_->set_world_matrix(temp_mat);
22. abs()--->fabs();
23.rw_terrian_manager.h:69:12: error: 'terrian_tile' was not declared in this scope
can not recongize the friend class in GCC ,so chang forward declaration.
#ifdef __linux__
class terrian_tile;
#endif
24. Windows.h: No such file or directory
linux not compile this model,and commit it.
25. itoa---->
#include <sstream>
std::ostringstream oss;
std::string str = "";
oss << _counter;
str = oss.str();
26. error: taking address of temporary
box3d bbox = (instances_[i]->get_bounding());
if (!manipulate_geo_hash(instances_[i]->get_id(), &bbox, update_geo_hash))
ta
27. error: no matching function for call to 'transform(std::basic_string<char>::iterator, std::basic_string<char>::iterator, std::basic_string<char>::iterator, <unresolved overloaded function type>)'
transform(_texture_type.begin(), _texture_type.end(), _texture_type.begin(), ::tolower);
28. GetModuleFileName((HINSTANCE)&__ImageBase,buffer,256);
#include <stdio.h>
------->string buffer = getcwd(NULL, 0);
string execution_path= buffer;
29. xstring ----><string>
30.invalid cast of an rvalue expression of type 'rw::multi_point::ptr {aka rw::rw_shared_ptr<rw::multi_point>}' to type 'rw::multi_point*&'
temp variable error.
31. error: 'atof' was not declared in this scope
std::stringstream oss;
int temp_int;
oss << _pri_string;
oss >> temp_int;
_var = temp_int;
32.error: conflicts with previous declaration
u known, have more than one define in u's file.so,find and delete it.
33. malloc no declear.
#include <malloc.h>
34. image_info_->image_type = image_type_;
rw_image :image_type("ccccccccccccccccc"),
35. don't write like this.
_runtime->register_service(_aaaa_multi_service_pid, get_aaa_multi_service());
((_driver_multi_service_impl*)get_aaa_multi_service())->init(_runtime);
((_driver_multi_service_impl*)get_aaa_multi_service())->set_runtime(_runtime);
36. register_service at last place when add_multi_service.
((terrian_data_sqlite_service_impl*)tms)->init();
_runtime->register_service(terrian_data_sqlite_service_pid, tms );
37. dom does not show,because android system does not support multi-therad rendering.
so ,put the upload in draw thread.
38.please set RW_INDEX rw_uint16 in rw_render_object_creator.cpp when u compile the code in android system,otherwise leave it alone.
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android刮刮樂(lè)效果-proterDuffXfermode的示例代碼
這篇文章主要介紹了Android刮刮樂(lè)效果-proterDuffXfermode,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Android 啟動(dòng)第三方程序的方法總結(jié)
這篇文章主要介紹了Android 啟動(dòng)第三方程序的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android中l(wèi)istview嵌套scrollveiw沖突的解決方法
這篇文章主要為大家詳細(xì)介紹了Android中l(wèi)istview嵌套scrollveiw沖突的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android實(shí)現(xiàn)的RecyclerView適配器
這篇文章主要介紹了Android實(shí)現(xiàn)的RecyclerView適配器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03
Android利用控制點(diǎn)的拖拽畫(huà)一個(gè)粽子
端午節(jié)就要到了,本文我們將利用控制點(diǎn)的拖拽式移動(dòng),動(dòng)態(tài)調(diào)整位置來(lái)調(diào)整繪制一個(gè)簡(jiǎn)單的粽子圖形,感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下2022-05-05
詳解ListView中多種item的實(shí)現(xiàn)方式
這篇文章主要給大家介紹了關(guān)于ListView中多種item的實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12
Android基于高德地圖完全自定義Marker的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Android基于高德地圖完全自定義Marker的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07

