A. 用gcc怎樣編譯STL的c++程序
使用g++直接編譯就行了啊
g++-otestmain.cpp
B. STL太大用什麼壓小
用靜態編譯,只會用到你使用到的數據,不會把所有的都添加進來
C. NDK下STL編譯不成功,怎麼辦
android ndk 支持 stl,但是該如何添加呢?許多人發現就算在 Application.mk 中添加代碼「APP_STL:=
gnustl_static」後,就算ndk-build編譯通過了,但是eclipse依然會報錯 "Symbol 'vector ' could
not be resolved",那麼該如何正確的添加stl呢?
方便他人亦是方便自己,如果覺得還行就點下右邊的投票吧,這樣可以幫助其他人更快的找到解決問題的方法;有疑問的也可留言哦, 謝謝!
工具/原料
Win7 x64
adt-bundle-windows-x86_64-20140702
android-ndk-r10
方法/步驟
在 HelloJni.cpp 中直接增加頭文件和vector的調用代碼:
#include <jni.h>#include <vector>void tst(){ std::vector<int>vec;}
編譯後效果如下:
android ndk 如何添加STL
在 Application.mk 中添加代碼「APP_STL:= gnustl_static」後,文件中的內容如下:APP_ABI := x86APP_STL:= gnustl_static編譯後發現ndk-build可以編譯通過了;
android ndk 如何添加STL
但是卻發現 eclipse 上面卻報出如下錯誤:
android ndk 如何添加STL
在
Android.mk 中增加 「LOCAL_LDLIBS:= -landroid」,後文件的內容如下:LOCAL_PATH := $(call
my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES :=
hello-jni.c HelloJni.cppLOCAL_LDLIBS:= -landroidinclude
$(BUILD_SHARED_LIBRARY)編譯後依然:
android ndk 如何添加STL
工程右鍵 「clean Project」
android ndk 如何添加STL
重新編譯一次 快捷鍵:Ctrl + B,後等待3秒鍾左右:
android ndk 如何添加STL
7
發現編譯通過了,至此stl添加成功
D. solidworks打開stl文件太大無法作為實體輸入
選項單位中進行設置。
1、從solidworks軟體中打開文件,在文件格式中選擇STL格式。
2、這時先不點擊打開按鈕,應先點擊選項。
3、彈出輸入選項對話框,在輸入為中選擇實體選項,單位設置為毫米,單擊確定。
4、重新打開吊鉤的stl文件,這時我們可以得到一個網格狀的實體零件,就可以測量或者進行繪制草圖等操作了。
E. C++ 中STL list編譯問題
#include <iostream>
#include <list>
//#pragma warning(disable: 4786)
using namespace std;
typedef list<char> C_LIST;
void listTravel(C_LIST list)
{
C_LIST::iterator itr;
for(itr = list.begin(); itr != list.end(); itr++)
{
cout << *itr <<ends;
}
cout << endl;
}
int listPopFront(C_LIST list,char *ch) //C_LIST是一個list容器,如果你加C_LIST * 那就是一個容器數組,你可以用C_LIST*list 但是要用list[0].front()訪問
{
*ch = list.front();
list.pop_front();
return list.size();
}
int main()
{
C_LIST clist;
char ch;
clist.push_back('A');
clist.push_back('B');
clist.push_back('C');
listTravel(clist);
listPopFront(clist,&ch);
listTravel(clist);
}
F. 犀牛文件轉換成stl容量變的好大 是什麼原因
首先,在你建模時注意麵的結構,3d max對四角面的支持好點,還有一定不能有斷點。 如果你說的以上格式不行的話,你可以試試obj格式,這個格式適合3d max 和maya的介面
G. 導出的stl文件太大了,有方法縮嗎
我試過轉換為MESH之後來修復,好像難度更大(因為形體比較復雜網格洞可能有多處,一方面不好找,另一方面填補全部風格洞的時候很容易出現問題,
H. 如何在Android平台下編譯帶STL的C++程序
1、下載最新的Android SDK,下載Android NDK R9C版本。
2、如是在windows平台下需要在PATH中設置環境變數,以便於直接調用NDK來編譯C++程序。
將如下兩個路徑加入到PATH中:<ANDROID_NDK>;<ANDROID_SDK>\platform-tools
其中<NDK>為你的計算機上Android NDK的安裝路徑,<SDK>為Android SDK的安裝路徑
如果在你的SDK下沒有platform-tools目錄,則在Eclipse中按照如下截圖進行操作:
3、為要編譯的C++程序建一個文件夾,如myproject。在myproject下再建一個jni文件夾,將源代碼放在這個文件夾下,myproject/jni。
mkdir myproject
mkdir myproject/jni
4、在jni文件夾下建兩個分別名為:android.mk和
application.mk文件。android.mk類以於C++程序的makefile,application.mk則指明當前程序依賴的庫。
android.mk的示例為:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := my_first_app #指明C++程序編譯出的可執行程序的名稱
LOCAL_SRC_FILES:= my_first_app0.cpp \ #指明要編譯的源文件,可以有很多個
my_first_app1.cpp\
…
include$(BUILD_EXECUTABLE)#表明編譯的是可執行程序
/**************************************************************************/
application.mk的示例為:(在application.mk中指明STL庫)
APP_STL:= gnustl_static
這里選STL庫時有四個選項:
system - 使用默認最小的C++運行庫,這樣生成的應用體積小,內存佔用小,但部分功能將無法支持
stlport_static - 使用STLport作為靜態庫,這項是Android開發網極力推薦的
stlport_shared - STLport 作為動態庫,這個可能產生兼容性和部分低版本的Android固件,目前不推薦使用。
gnustl_static - 使用 GNU libstdc++ 作為靜態庫
默認情況下STLPORT是不支持C++異常處理和RTTI,所以不要出現 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static來支持標准C++的特性,但生成的文件體積會偏大,運行效率會低一些。
支持C++異常處理,在Application.mk中加入 LOCAL_CPPFLAGS +=
-fexceptions這句,同理支持RTTI,則加入LOCAL_CPPFLAGS +=
-frtti,這里再次提醒大家,第二條說的使用gnustl靜態庫,而不是stlport。
強制重新編譯 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以強制重新編譯STLPort源碼,由於一些原因可能自己需要修改下STLPort庫,一般普通的開發者無需使用此項
5、打開控制台(cmd),在myproject目錄下用android的NDK build工具編譯C++程序:
cd myproject
$NDK/ndk-build
如果程序沒錯的話,會編譯出android的可執行程序,位置在myproject/libs/armeabi/my_first_app
8、將編譯出來的my_first_app放到手機或是模擬器上運行。在windows的cmd上運行adb.exe。
用adb.exe將my_first_app程序push到手機或模擬器的/data/local目錄上:
adb.exepush myproject\libs\armeabi\my_first_app /data/local。
9、通過adb,在手機上運行my_frist_app:
在cmd上運行:
adb.exe shell
由此進入到手機的linux終端上,接下來再更改my_first_app的許可權使其可以運行:
cd /data/local
chmod 777 my_first_app
./my_first_app//如果沒錯的話,這一步即可運行my_first_app
至此在android上編譯含STL的C++程序的過程結束。
I. 犀牛STL文件太大怎樣縮小
文件太大可以把其進行壓縮就能變小,首先右擊需要壓縮的文件,選擇【添加到壓縮文件】選項,接著在彈出的對話框里,設置保存的位置,文件名以及壓縮的格式後,點擊【確定】即可,壓縮文件時一定要選擇文件格式,否則文件格式不正確,便無法通過本身存在的文件瀏覽器中打開。
J. 求助c4d轉stl格式變得很大
你導出選擇尺寸的時候,你選擇的是什麼規格?
C4D原始格式是CM,如果我導出STL,我會直接選擇MM,親你是不是導成CM 1:1格式出去了?一個100釐米的方塊非常巨大了,不管是工業繪圖軟體還是NC和精雕,都承受不了這麼大的尺寸的。