1,linux不能編譯obj-c,只能用mac
2,安卓軟體不能用obj-c
3,穩不穩定取決於你的代碼,jdk在linux下應該會比較穩定但是對編譯出來的程序沒太大影響
㈡ C、C++、C#、java這些語言的開發平台各自是什麼
c
linux gcc 微軟vs系列 蘋果也有object-c平台 安卓也有 還有一大堆單片機
c++
linux g++ 微軟vs系列 蘋果也有 安卓也有 具體不清楚
c#
微軟自家.net平台 vs2008以上版本
java
eclipse 跨平台的 各大系統都有
其實還有很多 就說了自己比較熟悉的 希望能幫上你吧
㈢ 關於linux object-c編譯環境搭建
GNUStep可以模擬蘋果框架,但是已經很古老了。不建議使用。
gcc 可以編譯非 蘋果框架,但是 是objective-c的源碼,需要安裝 libobjc 吧,可以用gcc編譯 m 文件。
但是圖形編程,只能使用 MacOSX 的XCode了。。。。別無他選,GNUStep並不好。
㈣ 手機軟體的主流編程語言是什麼
現在手機軟體要數iphone的appstore最火了,其次是google的android手機系統下的軟體。
iphone的軟體編程語言是object-c
android的軟體編程語言是JAVA
相對而言, JAVA更容易上手,而且android的軟體大有後來者居上的趨勢。
㈤ 如何在linux下用c調用過python
#include <string>
#include <map>
#include <Python.h>
typedef std::map<std::string,PyObject*> pyMoleMap;
typedef pyMoleMap::iterator pyMoleMapIter;
class PyOperBase
{
public:
static int initPython() //must running at the main thread
{
if(m_isInit == true)
return true;
Py_Initialize();
if(!Py_IsInitialized())
{
return false;
}
//Need to specify the current path path only Linux
#ifdef LINUX
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
#endif
//PyEval_InitThreads();
//PyEval_ReleaseThread(PyThreadState_Get());
m_isInit = true;
return true;
}
static int releasePython()
{
if(!m_isInit) return false;
pyMoleMapIter iter;
PyObject* pMole = NULL;
for(iter = m_MoleMap.begin(); iter != m_MoleMap.end(); iter++)
{
pMole = iter->second;
Py_DECREF(pMole);
}
m_MoleMap.clear();
//PyGILState_Ensure();
Py_Finalize();
m_isInit = false;
return true;
}
static bool getInitStatus()
{
return m_isInit;
}
static int getModleDictByScriptName(std::string& script, PyObject** object)
{
if(m_isInit != true)
return false;
PyObject *pName = NULL, *pMole = NULL;
pyMoleMapIter iter = m_MoleMap.find(script);
if(iter != m_MoleMap.end())
{
pMole = iter->second;
if(!getDictByModle(pMole,object))
return false;
return true;
}
pName = PyString_FromString(script.c_str());
pMole = PyImport_Import(pName);
Py_DECREF(pName);
if(!pMole)
{
return false;
}
if(!getDictByModle(pMole,object))
{
Py_DECREF(pMole);
return false;
}
m_MoleMap.insert(std::pair<std::string,PyObject*>(script,pMole));
return true;
}
private:
static int getDictByModle(PyObject* pModle, PyObject** ppDict)
{
PyObject *pDict = NULL;
pDict = PyMole_GetDict(pModle);
if(!pDict)
{
return false;
}
*ppDict = pDict;
return true;
}
static bool m_isInit;
static pyMoleMap m_MoleMap;
};
class PyThreadLock
{
public:
PyThreadLock(void)
{
state = PyGILState_Ensure( );
}
~PyThreadLock(void)
{
PyGILState_Release( state );
}
private:
PyGILState_STATE state;
};
.cpp文件如下
#include "XPS2SVG_py.h"
bool PyOperBase::m_isInit = false;
pyMoleMap PyOperBase::m_MoleMap;
我linux下環境變數配置好了python路徑,所以直接#include <Python.h>了
以上代碼在windows下跑沒問題。
但到linux下,pMole = PyImport_Import(pName);會返回空
應該是沒找到pName標識的模塊,但是pName標識標識的模塊文件就在可執行文件的當前目錄下
㈥ 哪款uml類圖生成工具支持Object-C和mac環境
Trufun Plato UML2建模工具,是支持跨平台的綠色軟體,支持mac,linux和windows系統,歡迎到trufun官網免費下載使用
㈦ Linux C編譯生成的Object文件(.o)文件,是否相當於Java的JAR之類的庫文件
雖然我不懂java,但是Linux C編譯生成的.o文件是二進制可重定位文件,把一些相關的內打包成.so(動態庫)或容是.a(靜態庫),其實只是簡單的打了一個包,沒有什麼其它復雜處理。如果誰調用了,其中的函數之類的東西,就需要鏈接到這個庫文件或者.o文件,這樣生成二進制可執行文件
㈧ 在用Linux終端編寫C語言出現了未定義問題
出現該錯誤的原因為編譯時只變編譯了源文件的一部分,故在鏈接時無法從編譯好的目標代碼中找到print函數,所以出錯。
根據你的源文件結構,個人推薦先單獨編譯源文件為多個object文件,再統一鏈接。
方法如下
gcc
-c
main.c
#
-c參數的作用是讓gcc只編譯,不鏈接
gcc
-c
test.c
gcc
-o
main
main.o
test.o
#
將編譯好的目標代碼鏈接
當然,以上是在gcc為編譯器的前提下執行,如使用clang等其他編譯器,方法類似(clang的調用方法與gcc高度兼容)
㈨ C++,object-C,Java,swift等一些編程語言學哪個比較好,或者說哪個編程語言與其他
匯編和c語言比較基礎,swift 最近較火,先學好c和匯編,java,linux學起來會比別人快很多