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学起来会比别人快很多