當前位置:首頁 » 編程軟體 » xcode12編譯x8686

xcode12編譯x8686

發布時間: 2022-05-14 08:04:10

❶ xcode怎麼編譯open jdk

1要安裝JDK7,當然是要有JDK的二進制文件,可直接在ORACLE的官網中下載就可以拉出來 。PS:要注意系統版本的選擇,我就是在折騰了許久的X64版本的JDK後,才發現我的系統是X86的。
2接著就是解壓tar.gz的文件了。
tar -xzf jdk-7-linux-i586.tar.gz
3接著就是解壓出來的文件夾移動到/usr/lib/jvm的目錄下
在這之前當然需要你擁有root的許可權 su -l 再輸入root賬戶的密碼,同時也需要你在/usr/lib目錄下新建一個文件夾 mkdir /usr/lib/jvm。
做好這些准備之後,我們就可以吧jdk的文件移動我們想要的位置了。
mv jdk1.7.0 /usr/lib/jvm
為了方便配置環境變數,我們把jdk的文件改名一下,網上普遍把jdk的文件改名為jdk-7-sun。
mv /usr/lib/jvm/jdk1.7.0 /usr/lib/jvm/java-7-sun
4配置環境變數
如果你機子上面有安裝vim的話,請運行vim ~/.bashrc
如果沒有的話可以用gedit打開, 請運行gedit ~/.bashrc
在環境變數中添加進以下內容:
export JAVA_HOME=/usr/lib/jvm/java-7-sun
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
5保存環境變數,退出編輯器,然後輸入以下命令使環境變數生效
source ~/.bashrc
可以用env命令來查看設置的環境變數是否成功。
6配置默認的程序
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300
sudo update-alternatives --config java
sudo update-alternatives --config javac
如果你的系統中安裝了其他的jdk,系統會提示出來,選擇jdk7即
7測試以下jdk的版本,在終端中輸入以下命令
java -version
javac -version
如果你看的結果和下面的一樣的話,那你的jdk7配置就基本上完成了。
SE Runtime Environment (build 1.7.0-b147) Server VM (build 21.0-b17, mixed mode)

❷ xcode6環境,模擬器選擇的iphone6 為什麼編譯出來的模擬器版本靜態庫只包含x86_64不包含i386

i386需要手動添加上去的。

❸ xcode 如何編譯

Xcode 常用編譯選項設置
在xcconfig文件中指定即可。
用標准庫連接
LINK_WITH_STANDARD_LIBRARIES = YES如果激活此設置,那麼編譯器在鏈接過程中會自動使用通過標准庫的鏈接器。
Info.plist 輸出編碼
INFOPLIST_OUTPUT_FORMAT = binary指定Info.plist文件的輸出編碼(默認情況下,輸出與輸入的編碼保持不變),這個輸出編碼能指定「binary」或者「XML」。
生 成調試符號GCC_GENERATE_DEBUGGING_SYMBOLS = NO當啟用的時候,詳情等級能夠通過build的』Level of Debug Symbols』設置去控制。 隱藏內聯方法GCC_INLINES_ARE_PRIVATE_EXTERN = YES Objective-C GCGCC_ENABLE_OBJC_GC = Unsupported 優化級別GCC_OPTIMIZATION_LEVEL = Fastest, Smallest [-OS]
None: 不做優化使用這個設置,編譯器的目標是減少編譯成本,使調試產生預期的結果。
Fast:優化編譯將為大函數佔用更多的時間和內存使用這個設置,編譯器將嘗試減少代碼的大小和執行時間,不進行任何優化,需要大量編譯時間。
Faster:編譯器執行幾乎所有支持的優化,它不考慮空間和速度之間的平衡與「Fast」設置相比,該設置會增加編譯時間和生成代碼的性能。編譯器不進行循環展開、內聯函數和寄存器變數的重命名。
Fastest:開啟「Faster」支持的所有的優化,同時也開啟內聯函數和寄存器變數的重命名選項
Fastest,smallest:優化代碼大小這個設置啟用「Faster」所有的優化,一般不增加代碼大小,它還執行旨在減小代碼大小的進一步優化。
C 語言方言GCC_C_LANGUAGE_STANDARD = C89 警告 檢查Switch語句GCC_WARN_CHECK_SWITCH_STATEMENTS = YES 隱藏局部變數GCC_WARN_SHADOW = YES 隱式轉換成32位的類型GCC_WARN_64_TO_32_BIT_CONVERSION = YES 未完成的Objective-C協議GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES 抑制所有的警告GCC_WARN_INHIBIT_ALL_WARNINGS = NO 初始化時沒有完整的括弧GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES例子(a沒有完全的括弧,b有):
int a[ 2 ][ 2 ] = { 0, 1, 2, 3 };
int b[ 2 ][ 2 ] = { { 0, 1 }, { 2, 3 } };
不匹配的返回類型
GCC_WARN_ABOUT_RETURN_TYPE = YES 缺少括弧GCC_WARN_MISSING_PARENTHESES = YES例子:
{
if( a )
if( b )
foo();
else
bar();
}
{
if( a )
{
if( b )
foo();
else
bar();
}
}
在結構體初始化時缺少欄位
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
缺 少函數原型GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES 在文件結尾缺少新行GCC_WARN_ABOUT_MISSING_NEWLINE = YES 選擇了多個定義的類型(@Selector)GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO 嚴格的Selector匹配GCC_WARN_STRICT_SELECTOR_MATCH = YES 把缺少函數原型當作錯誤GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES 把所有的警告當作錯誤GCC_TREAT_WARNINGS_AS_ERRORS = YES 未定義的SelectorGCC_WARN_UNDECLARED_SELECTOR = YES 未初始化的自動變數GCC_WARN_UNINITIALIZED_AUTOS = YES 未知的Pragma指令GCC_WARN_UNKNOWN_PRAGMAS = YES 未使用的函數GCC_WARN_UNUSED_FUNCTION = YES 未使用的標簽GCC_WARN_UNUSED_LABEL = YES 未使用的參數GCC_WARN_UNUSED_PARAMETER = YES 未使用的值GCC_WARN_UNUSED_VALUE = YES當一個語句計算的結果顯式的未使用的時候發出警告 未使用的變數GCC_WARN_UNUSED_VARIABLE = YES 警告-所有過時的函數GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES offsetof宏未定義使用的警告GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
iphone 常用的<app>-info.plist設置
Application requires iPhone environment如 果應用程序不能在ipod touch上運行,設置此項為true;
Application uses Wi-Fi如果應用程序需要wi-fi才能工作,應該將此屬性設置為true。這么做會提示用戶,如果沒有打開wi-fi的話,打開wi-fi。為了節省 電力,iphone會在30分鍾後自動關閉應用程序中的任何wi-fi。設置這一個屬性可以防止這種情況的發生,並且保持連接處於活動狀態
Bundle display name這用於設置應用程序的名稱,它顯示在iphone屏幕的圖標下方。應用程序名稱限制在10-12個字元,如果超出,iphone將縮寫名 稱。
Bundle identifier這個為應用程序在iphone developer program portal web站點上設置的唯一標識符。(就是你安裝證書的時候,需要把這里對應修改)。
Bundle version這個會設置應用程序版本號,每次部署應用程序的一個新版本時,將會增加這個編號,在app store用的。
Icon already includes gloss and bevel effects默認情況下,應用程序被設置了玻璃效果,把這個設置為true可以阻止這么做。
Icon file(這個不用多說了)設置應用程序圖標的。
Main nib file base name應用程序首次啟動時載入的xib文件 這個基本用不到。
Initial interface orientation 確定了應用程序以風景模式還是任務模式啟動
Localizations多語言。應用程序本地化的一列表,期間用逗號隔開,例如 應用程序支持英語 日語,將會適用 English,Japanese. Status bar is initially hidden 設置是否隱藏狀態欄。你懂的。
Status bar style選擇三種不同格式種的一種。
URL types應用程序支持的url標識符的一個數組。
用URL Scheme進行程序跳轉
打開info.plist,添加一項URL types
展開URL types,再展開Item1,將Item1下的URL identifier修改為URL Scheme
展開URL Scheme,將Item1的內容修改為myapp
其他程序可通過myapp://訪問此自定義URL
參考:http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
IOS後台播放音樂
OS後台播放只是在IOS4.0以後的版本支持。
1,設置後台播放會話
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory: error:nil];
2,在info.plist裡面添加
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
靜態庫沒法包含category/分類?
如果你導入一個objc靜態庫,發現很多objc的category 不能調用,可以嘗試在主工程中加入linker選項:
-all_load 加入這個一般就夠了
-ObjC
讓程序最小化再開啟時,從頭開始:
按下 「Home」 鍵以後程序可能並沒有退出而是轉入了後台運行。如果您想讓應用直接退出,最簡單的方法是:在 info-plist 裡面找到 Application does not run in background 一項,勾選即可。
程序退出後任務欄還是有圖標,但是程序原來的所有運行狀態全部丟失,點擊任務欄圖標也不過相當於再次啟動程序;如果允許後台運行,點擊任務欄圖標後會恢復程序中斷時的界面。
本地化字元串:
在infoPlist.strings裡面寫
「string1″=」水果」
代碼裡面寫 myLabel.text = NSLocalizedString(@」string1″, nil);
本地化的Bundle display name:
1)創建一個空文件,取名為InfoPlist.strings
2)對InfoPlist.strings進行本地化(Get Info -> Make Localization),然後設置需要的語言(如中文zh)
3)編輯不同的InfoPlist.strings文件,設置顯示名字
CFBundleDisplayName = 「名字」;
4)(這步不做貌似也可以)編輯Info.plist,添加一個新的屬性Application has localized display name, 設置其類型為boolean,並將其value設置為選中狀態
default圖片的銜接問題:
程序開始後,手動載入default圖片,然後進行過渡效果即可。
遍歷目錄:
NSString *appDocDir = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] relativePath];NSArray *contentOfFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:appDocDir error:NULL];for (NSString *aPath in contentOfFolder) { NSLog(@"apath: %@", aPath); NSString * fullPath = [appDocDir :aPath]; BOOL isDir; if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir) { [fileList addObject:aPath]; }}
IB:
不論寫不寫property的retain,由IBOutlet都會為對象加一個retainCount,所以只要連接了,就需要在viewDidUnload與dealloc中release並適當置為nil。
預先在IB裡面載入好的文件(比如圖片),即使釋放了Controller,IB中的文件也不會被釋放,直至內存警告,解決辦法是較大的資源用代碼載入。
UIWebView:
用代碼載入UIWebView的內容,navigationType是UIWebViewNavigationTypeOther
CAAnimation:
一定要記得[self.view.layer removeAllAnimations];因為CAAnimation會retain它的delegate
設備型號識別,可通過審核:
+ (NSString*)getDeviceVersion{ size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = (char*)malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; free(machine); return platform;}
輸出:
//@」iPad1,1″
//@」iPad2,1″
//@」i386″
逗號後面數字解釋:(i386是指模擬器)
1-WiFi版
2-GSM/WCDMA 3G版
3-CDMA版
AppleTV(2G) (AppleTV2,1)
iPad (iPad1,1)
iPad2,1 (iPad2,1)Wifi版
iPad2,2 (iPad2,2)GSM3G版
iPad2,3 (iPad2,3)CDMA3G版
iPhone (iPhone1,1)
iPhone3G (iPhone1,2)
iPhone3GS (iPhone2,1)
iPhone4 (iPhone3,1)
iPhone4(vz) (iPhone3,3)iPhone4 CDMA版
iPhone4S (iPhone4,1)
iPodTouch(1G) (iPod1,1)
iPodTouch(2G) (iPod2,1)
iPodTouch(3G) (iPod3,1)
iPodTouch(4G) (iPod4,1)
判斷ipad/iphone
12UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPadUI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
或者
1[[[UIDevice currentDevice] model] isEqualToString:@"iPad"];
判斷設備是否有攝像頭
1[UIImagePickerController isSourceTypeAvailable:];

❹ 黑蘋果xcode怎麼編譯到運行

左上角的箭頭編譯+運行
command+R也是
command+B是編譯

❺ 如何實現protobuf在XCODE上armv7/armv7s/i386的交叉編譯 / 藍訊

步驟一:部署protoc.exe
1)sudo su ---進入管理模式
//以下操作切換至protobuf文件夾下
2)。/configure
3)make
4)make check
5)make install
此時可以查看protobuf文件夾下面的makefile文件,可以查看-build表示的本機環境以及-host表示的編譯庫的運行環境
我本地的-build=x86_64-apple-darwin12.3.0
-host=x86_64-apple-darwin12.3.0
(這兩個參數在後續配置腳本需要用到,與後面腳步的i686-apple-darwin12.3.0以及arm-apple-darwin12.3.0後綴「arm-apple-darwin12.3.0」保持一致)
6)make distclean清理已生成的makefile,為交叉編譯配置新makefile做准備
步驟二:配置交叉編譯
1)執行腳本ios-build.sh,腳本內容如下:
configure_for_platform() {
export PLATFORM=$1
#export PLATFORM=iPhoneOS
echo 「Platform is ${PLATFORM}」
if [ 「$PLATFORM」 == 「iPhoneSimulator」 ]; then
export ARCHITECTURE=i386
export ARCH=i686-apple-darwin12.3.0
fi
if [ 「$PLATFORM」 == 「iPhoneOS」 ]; then
export ARCHITECTURE=$2
export ARCH=arm-apple-darwin12.3.0
fi
export ARCH_PREFIX=$ARCH-
export SDKVER=「6.1」
#sdk版本號必須正確
export
DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer
export SDKROOT=「$DEVROOT/SDKs/${PLATFORM}$SDKVER.sdk」
export
PKG_CONFIG_PATH=「$SDKROOT/usr/lib/pkgconfig:$DEVROOT/usr/lib/pkgconfig」
export AS=「$DEVROOT/usr/bin/as」
export ASCPP=「$DEVROOT/usr/bin/as」
export AR=「$DEVROOT/usr/bin/ar」
export RANLIB=「$DEVROOT/usr/bin/ranlib」
#export CPP=「$DEVROOT/usr/bin/c++」
#export CXXCPP=「$DEVROOT/usr/bin/c++」
export CC=「$DEVROOT/usr/bin/gcc」
export CXX=「$DEVROOT/usr/bin/g++」
export LD=「$DEVROOT/usr/bin/ld」
export STRIP=「$DEVROOT/usr/bin/strip」
export LIBRARY_PATH=「$SDKROOT/usr/lib」
export CPPFLAGS=「」

❻ 如何實現protobuf在XCODE上armv7/armv7s/i386的交叉編譯

步驟一:部署protoc.exe

1)sudo su ---進入管理模式

//以下操作切換至protobuf文件夾下

2)./configure

3)make

4)make check

5)make install

此時可以查看protobuf文件夾下面的makefile文件,可以查看-build表示的本機環境以及-host表示的編譯庫的運行環境

我本地的-build=x86_64-apple-darwin12.3.0

-host=x86_64-apple-darwin12.3.0

(這兩個參數在後續配置腳本需要用到,與後面腳步的i686-apple-darwin12.3.0以及arm-apple-darwin12.3.0後綴「arm-apple-darwin12.3.0」保持一致)

6)make distclean清理已生成的makefile,為交叉編譯配置新makefile做准備

步驟二:配置交叉編譯

1)執行腳本ios-build.sh,腳本內容如下:

configure_for_platform() {

export PLATFORM=$1

#export PLATFORM=iPhoneOS

echo "Platform is ${PLATFORM}"

if [ "$PLATFORM" == "iPhoneSimulator" ]; then

export ARCHITECTURE=i386

export ARCH=i686-apple-darwin12.3.0

fi

if [ "$PLATFORM" == "iPhoneOS" ]; then

export ARCHITECTURE=$2

export ARCH=arm-apple-darwin12.3.0

fi

export ARCH_PREFIX=$ARCH-

export SDKVER="6.1"
#sdk版本號必須正確

export
DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer

export SDKROOT="$DEVROOT/SDKs/${PLATFORM}$SDKVER.sdk"

export
PKG_CONFIG_PATH="$SDKROOT/usr/lib/pkgconfig:$DEVROOT/usr/lib/pkgconfig"

export AS="$DEVROOT/usr/bin/as"

export ASCPP="$DEVROOT/usr/bin/as"

export AR="$DEVROOT/usr/bin/ar"

export RANLIB="$DEVROOT/usr/bin/ranlib"

#export CPP="$DEVROOT/usr/bin/c++"

#export CXXCPP="$DEVROOT/usr/bin/c++"

export CC="$DEVROOT/usr/bin/gcc"

export CXX="$DEVROOT/usr/bin/g++"

export LD="$DEVROOT/usr/bin/ld"

export STRIP="$DEVROOT/usr/bin/strip"

export LIBRARY_PATH="$SDKROOT/usr/lib"

export CPPFLAGS=""

#export CFLAGS="-arch armv7 -fmessage-length=0 -pipe -fpascal-strings
-miphoneos-version-min=4.0 -isysroot=$SDKROOT -I$SDKROOT/usr/include
-I$SDKROOT/usr/include/c++/4.2.1/"

export CFLAGS="-arch ${ARCHITECTURE} -fmessage-length=0 -pipe
-fpascal-strings -miphoneos-version-min=4.0 -isysroot=$SDKROOT
-I$SDKROOT/usr/include -I$SDKROOT/usr/include/c++/4.2.1/"

export CXXFLAGS="$CFLAGS"

#export LDFLAGS="-isysroot='$SDKROOT' -L$SDKROOT/usr/lib/system
-L$SDKROOT/usr/lib/"

export LDFLAGS="-arch ${ARCHITECTURE} -isysroot='$SDKROOT'
-L$SDKROOT/usr/lib/system -L$SDKROOT/usr/lib/"

./configure --host=${ARCH} --with-protoc=protoc --enable-static
--disable-shared

}

mkdir ios-build

#build for iPhoneSimulator

configure_for_platform iPhoneSimulator

make clean

make

cp src/.libs/libprotobuf-lite.a ios-build/libprotobuf-lite-i386.a

#提取完整版本(i386)

cp src/.libs/libprotobuf.a ios-build/libprotobuf-i386.a

#build for iPhoneOS armv7

configure_for_platform iPhoneOS armv7

make clean

make

cp src/.libs/libprotobuf-lite.a ios-build/libprotobuf-lite-armv7.a

#提取完整版本(armv7)

cp src/.libs/libprotobuf.a ios-build/libprotobuf-armv7.a

#build for iPhoneOS armv7s

configure_for_platform iPhoneOS armv7s

make clean

make

cp src/.libs/libprotobuf-lite.a ios-build/libprotobuf-lite-armv7s.a

#提取完整版本(armv7s)

cp src/.libs/libprotobuf.a ios-build/libprotobuf-armv7s.a

make clean

#cerate a fat library containing all achitectures in libprotobuf-lite.a

xcrun -sdk iphoneos lipo -arch armv7 ios-build/libprotobuf-lite-armv7.a -arch
armv7s ios-build/libprotobuf-lite-armv7s.a -arch i386
ios-build/libprotobuf-lite-i386.a -create -output
ios-build/libprotobuf-lite.a

#合並三個完整版本(libprotobuf.a)

xcrun -sdk iphoneos lipo -arch armv7 ios-build/libprotobuf-armv7.a -arch
armv7s ios-build/libprotobuf-armv7s.a -arch i386 ios-build/libprotobuf-i386.a
-create -output ios-build/libprotobuf.a

2)將打包生成的libprotobuf-lite.a和libprotobuf.a復制至工程下進行編譯,可以編譯protobuf在xcode上的模擬器版本和真機版本,完成交叉編譯。

❼ 如何用xcode編譯,運行cpp文件

可以。
有2種方法:
1.將.cpp改成.mm
2.強制Xcode按C++的方式編譯.方法是
targets -> Build Setting -> Compile Source -> C++

❽ 如何在xcode中進行依賴性編譯

當你確定了項目的依賴性之後,各個項目就會按照設定的依賴關系確定編譯順序,從而順利的編譯整個工程。 1、把子項目,例如dylib項目,添加到應用程序項目中來。在應用程序的項目中,Ctrl+點擊Groups & Files中的項目名稱,在磁碟中選中xcodeproj文件,然後好,就可以把這個項目作為參考添加到當前項目中了。 2、雙擊項目的Targets,在彈出窗口的General頁的左下角,點擊+,在彈出窗口中選中參考項目的對應Targets,然後點擊Add Targets。 關閉窗口後,你在應用程序項目中編譯時,就會先編譯依賴的項目,然後才會編譯應用程序項目了。

❾ 如何在Xcode上編譯和運行程序

您好,很高興為您解答。

參考一下實例:http://xue.uplook.cn/yykf/iphonekf/117300.html

如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】

希望我的回答對您有所幫助,望採納!

~ O(∩_∩)O~

❿ Xcode編寫c程序出現 ld: 1 plicate symbol for architecture x86_64 求大神解答

最近在使用sqlite和iconv寫一些東西,但是在鏈接的時候出現了錯誤。_64:"_iconv_open",referencedfrom:_maininmain.o"_iconv",referencedfrom:_maininmain.o"_iconv_close",referencedfrom:_maininmain.old:symbol(s)notfoundforarchitecturex86_64clang:error:(use-vtoseeinvocation)後來發現xcode就算使用系統自帶的頭文件也需要導入lib(sqlite和iconv,Mac都自帶),也就是說,單單包含頭文件是不夠的,還需要加入lib或Framework,具體方法如下:加上以後,一切正常。我之前都是直接拿源碼來編譯來避免這個錯誤。。。每次調試編譯半天。後來才發現原來要這么解決。

熱點內容
app什麼情況下找不到伺服器 發布:2025-05-12 15:46:25 瀏覽:713
php跳過if 發布:2025-05-12 15:34:29 瀏覽:466
不定時演算法 發布:2025-05-12 15:30:16 瀏覽:129
c語言延時1ms程序 發布:2025-05-12 15:01:30 瀏覽:163
動物園靈長類動物配置什麼植物 發布:2025-05-12 14:49:59 瀏覽:732
wifi密碼設置什麼好 發布:2025-05-12 14:49:17 瀏覽:147
三位數乘兩位數速演算法 發布:2025-05-12 13:05:48 瀏覽:396
暴風影音緩存在哪裡 發布:2025-05-12 12:42:03 瀏覽:539
access資料庫exe 發布:2025-05-12 12:39:04 瀏覽:627
五開的配置是什麼 發布:2025-05-12 12:36:37 瀏覽:363