یاداشت های کوتاه یک برنامه نویس

طبقه بندی موضوعی

۲ مطلب در خرداد ۱۳۹۶ ثبت شده است

۱۳
خرداد

شروع برنامه نویسی سی و سی پلاس پلاس در ویندوز


در قدم اول نیاز به یک ابزار توسعه داریم که شامل کامپایلر و لینک کننده و دیباگر و .....باشه.

از  ویژوال استادیو به خاطر حجمش خوشم نمیاد و به عنوان گزینه ی شماره دو در نظر میگیرمش پس باید به دنبال یک گزینه ی سبک و متن باز بگردم و با یه گوگل سریع به MinGW رسیدم.....

برای دانلودش نیاز به یک تغییردهنده ی آی پی داریم چون sourceforge هم ما رو تحریم کرده، سگ تو روحش.

برای نصب هم نیاز به تغییر دهنده ی آی پی داریم چون نصب کننده ی MinGW یک سری از چیز ها رو باید از sourceForge دانلود کنه بازم سگ توروحش .......

بعد از نصب با تنظیم متغییر محیطی path سیستم ، در cmd مثل ترمینال گنو/لینوکس gcc و g++ و تمام ابزار های داخل پوشهMinGW bin در دسترس خواهند بود و .....

اگر در گنو لینوکس بودم از bash اسکریپت به جای make استفاده میکردم چون make رو بلد نیستم و یاد گرفتنش میمونه برای بعد....

gradle یه پلاگین برای توسعه برنامه های بومی (Native) داره جالب به نظر میاد حتما باید برم سراغ مستندات اش .

برای تمرین هم که شده دوست دارم توسعه ی یه ابزار مفید رو به صورت یک پروژه ی متن باز شروع کنم پس این داستان ادامه دارد....

  • * RayanFar
۱۰
خرداد

برای لود کردن کتابخانه های بومی (natvie) از فایل jar کافیه فایل های dll یا so رو در یک پکیج مثل سورس جاوا کپی کنید و  از این کلاس استفاده کنید:

/*
 * Class NativeUtils is published under the The MIT License:
 *
 * Copyright (c) 2012 Adam Heinrich <adam@adamh.cz>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package cz.adamh.utils;

import java.io.*;
 
/**
 * A simple library class which helps with loading dynamic libraries stored in the
 * JAR archive. These libraries usualy contain implementation of some methods in
 * native code (using JNI - Java Native Interface).
 * 
 * @see http://adamheinrich.com/blog/2012/how-to-load-native-jni-library-from-jar
 * @see https://github.com/adamheinrich/native-utils
 *
 */
public class NativeUtils {
 
    /**
     * Private constructor - this class will never be instanced
     */
    private NativeUtils() {
    }
 
  • * RayanFar