Linux下gcc无法找到头文件 5C

我的源码目录:main.c lib //lib是一个目录
我把头文件放在lib目录里面,gcc main.c -o test无法找到我放在lib目录里的头文件
在网上搜了一下,说要在 .bashrc 后面加一句:export C_INCLUDE_PATH=
以下是我.bashrc的配置:

.bashrc

User specific aliases and functions**

ali asrm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

#Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export C_INCLUDE_PATH=/root/projects/ConsoleApplication1/lib //这条是新加的

然后再用gcc,依然找不到头文件:
#运行 gcc main.c -o test
/tmp/cco8z3FL.o:在函数‘main’中:
main.c:(.text+0x2a):对‘errExit’未定义的引用
collect2: 错误:ld 返回 1

问题,头文件和源文件在不同的目录,如何编译呢?

11个回答

r each test case, just output a single integer, the number of convex quadrangles you can construct.
Sample Inputfgfdgfdg

头文件还没添加到库,或者路劲错误

-l加上需要导入的库

gcc 在编译时如何去寻找所需要的头文件:
※所以header file的搜寻会从-I开始
※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
※再找内定目录
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/……/……/……/……/include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/……/……/……/……/i386-linux/include
库文件但是如果装gcc的时候,是有给定的prefix的话,那么就是
/usr/include
prefix/include
prefix/xxx-xxx-xxx-gnulibc/include
prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include

在gcc行加个-l带库路径试下

-Iinc 将头文件路径链接编译

在编译的时候,需要收到链接库文件,- l +库文件的路径,例如:-luscsqlite3 依赖uscsqlite3库

gcc main.c -o test -I //root/projects/ConsoleApplication1/lib

你在命令行执行以下man errExit,看需要包含哪些头文件,包含进来,如果不行,就是没有安装相关的库,
利用sudo apt-get install libxxx-dev去安装就可以了

为什么不把头文件放在当前目录呢,

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
linux下给gcc添加头文件和库文件添加默认搜索路径
本人学linxu和编程没多久,很多问题不懂,请各路大神多多指教,感激不尽!!!! 今天在linux下用gcc编译器做了一个动态库(库文件名为libhot.so),库文件在 目录为“/usr/selflib/lib/libhot.so”,这个库的头文件和main1.c在一个目录里(本例子中就是当前目录下),然后就试了试这个库文件,写了一个main1.c文件来调用这个动态库文件中的函数,编译命令如下: gcc main1.c -L /usr/selflib/lib/libhot.so -o main1.o 编译通过了,没问题。但是我觉得这样太麻烦了,每次编译时还要指定动态库文件路径和名字,我知道可以通过编写makefile文件来解决这个问题,但是我还是觉得太麻烦,后来就想找一种方法来增加gcc编译器的头文件和库文件默认搜索路径,做到 gcc main1.c -o main.o 一条简单的命令就能搞定(不用设置环境变量,不用再次指定搜索路径,也不必通过编写makefie来解决),就行使用它的内部库一样那么轻松简单。后来试过了(修改ld.so.conf配置文件,然后以管理员身份运行ldconfig命令)这个方法,失败了,也知道了原因。那应该如何修改才能达到我的目的呢? 求大神们指教!!
Linux 下学习hook函数使用时用GCC编译报错
使用linux下netfilter和hook函数,使用结构体nf_hook_ops定义时总是报错 invalid use of undefined type ‘struct nf_hook_ops’,我已经在添加了该有的头文件,代码和网上很多一样,就是简单的netfilter hook代码。求dalao解惑!linux是火帽3.2.2-5,。代码和编译情况如下: ``` #ifndef MODULE #define MODULE #endif #ifndef __KERNEL__ #define __KERNEL__ #endif #include <linux/module.h> #include <linux/kernel.h> #include <linux/netdevice.h> #include <linux/netfilter.h> #include <linux/netfilter_ipv4.h> /*hook处理函数*/ unsigned int hook_func(unsigned int hook, struct sk_buff *skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff *)); /*注册hook函数数据结构*/ static struct nf_hook_ops my_hook; /*初始化程序*/ int init_module() { my_hook.hook=hook_func; //my_hook.owner=THIS_MODULE; my_hook.pf= PF_INET; my_hook.hooknum= NF_IP_LOCAL_IN; my_hook.priority = NF_IP_PRI_FIRST; nf_register_hook(my_hook);//注册入内核 return 0; } /*清除钩子*/ void cleanup_moudule() { nf_unregister_hook(&my_hook);//将用户定义的钩子从内核中删除 } ``` gcc编译报错: Myfirewall.c:21: warning: `struct net_device' declared inside parameter list Myfirewall.c:21: warning: its scope is only this definition or declaration, which is probably not what you want Myfirewall.c:21: warning: `struct sk_buff' declared inside parameter list Myfirewall.c: In function `init_module': Myfirewall.c:37: invalid use of undefined type `struct nf_hook_ops' Myfirewall.c:39: invalid use of undefined type `struct nf_hook_ops' Myfirewall.c:40: invalid use of undefined type `struct nf_hook_ops' Myfirewall.c:41: invalid use of undefined type `struct nf_hook_ops' Myfirewall.c:43: `my_hook' has an incomplete type Myfirewall.c: At top level: Myfirewall.c:28: storage size of `my_hook' isn't known
arm-linux-androideabi-gcc 交叉编译报错
对Linux下的一个开源代码进行交叉编译,准备移植到Android平台上。但是一直报错。 编辑脚本如下: export NDKROOT="/home/bupt/android-ndk-r9d" export PREBUILT=$NDKROOT/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64 export SYSROOT=$NDKROOT/platforms/android-18/arch-arm export CC=$PREBUILT/bin/arm-linux-androideabi-gcc export LD=$PREBUILT/bin/arm-linux-androideabi-ld export AS=$PREBUILT/bin/arm-linux-androideabi-gcc export AR=$PREBUILT/bin/arm-linux-androideabi-ar export RANLIB=$PREBUILT/bin/arm-linux-androideabi-ranlib export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip CFLAGS="--sysroot=$NDKROOT/platforms/android-18/arch-arm -fPIC -DX264_VERSION -DANDROID -DHAVE_PTHREAD -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -march=armv7-a -fomit-frame-pointer -mfloat-abi=softfp -mfpu=neon -I$TOOLCHAINS_INCLUDE -I$NDKROOT/platforms/android-18/arch-arm/usr/include" export CFLAGS LDFLAGS="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-rpath-link=$NDKROOT/platforms/android-18/arch-arm/usr/lib -L$NDKROOT/platforms/android-18/arch-arm/usr/lib -nostdlib -lc -lm -ldl -lgcc" export LDFLAGS ./configure --prefix=/home/bupt/clamav/clamav-0.98.4/clamav-android --host=arm-linux-androideabi --with-openssl=/usr/lib config.log报错如下: configure:3820: /home/bupt/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -V >&5 arm-linux-androideabi-gcc: error: unrecognized option '-V' arm-linux-androideabi-gcc: fatal error: no input files compilation terminated. configure:3831: $? = 1 configure:3820: /home/bupt/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -qversion >&5 arm-linux-androideabi-gcc: error: unrecognized option '-qversion' arm-linux-androideabi-gcc: fatal error: no input files compilation terminated. ================================== home/bupt/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/include-fixed/limits.h:169:61: error: no include path in which to search for limits.h configure:4461: $? = 1 但是在这个文件夹下可以找到这个.h文件。 conftest.c:13:0: fatal error: assert.h: No such file or directory compilation terminated. 其他报错信息都是以上这种找不到头文件等。 =========================== 命令行报错为: configure: ****** mempool support disabled (mmap not available or not usable) checking for ld used by GCC... /home/bupt/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld checking if the linker (/home/bupt/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld) is GNU ld... yes checking for shared library run path origin... done checking check.h usability... no checking check.h presence... no checking for check.h... no configure: unable to compile/link with check checking for libxml2 installation... not found configure: ****** libxml2 support unavailable checking for OpenSSL installation... configure: error: OpenSSL not found. 求解决方案!!!!!!!!!!!!!!
linux下gtk的库文件有很多,不知道哪一个是我用的
我做的应用运行在手持终端,基于一个精简的Linux系统。 用的gcc-arm-linux交叉编译工具 现在我就想搞清楚头文件和库文件在哪里,makefile脚本很复杂而且有很多文件,完全看不懂,只能凭目录名称去找。。。 头文件在/usr/local/arm-linux/include/gtk/下 库文件用locate libgtk查找有一大堆,目测有关系的有下面这些: /usr/local/arm-linux/arm-linux/lib/libgtk-x11-2.0.so /usr/local/arm-linux/arm-linux/lib/libgtk-x11-2.0.so.0 /usr/local/arm-linux/arm-linux/lib/libgtk-x11-2.0.so.0.600.8 /usr/local/arm-linux/arm-linux/lib/libgtkstylus.so /usr/local/arm-linux/arm-linux/lib/libgtkstylus.so.0 /usr/local/arm-linux/arm-linux/lib/libgtkstylus.so.0.0.0 我要如何才能确定哪一个是编译时依赖的库? 有必要把makefile脚本贴出来吗?
Makefile找不到头文件
小白学习Makefile遇到一个小问题,一直没找到解决方案,求教各位大神解答 系统环境:Ubuntu14.04 文件夹目录下的文件:main.c,add.c,math.h,defi.h,Makefile 文件内容: math.h ``` int add(int x,int y); ``` add.c ``` #include<math.h> int add(int x,int y) { return x+y; } ``` defi.h ``` #define A 1 ``` main.c ``` #include<stdio.h> #include<math.h> #include<defi.h> int main() { int result = 0; result = add(4,A); printf("result:%d\n",result); return 0; } ``` Makefile ``` edit : main.o add.o gcc -o edit main.o add.o main.o: main.c math.h defi.h gcc -c main.c add.o: add.c math.h gcc -c add.c clean: rm edit main.o add.o ``` 在Linux该文件夹目录下执行make总是提示找不到defi.h头文件,但是我在Makefile和main.c中去掉defi.h头文件,并将main.c文件中的“A”用“1”来代替就可以运行 请问各位大神这是什么原因导致的啊,本人新手,所以makefile中没用变量这些来定义头文件路径,只是用这种最基础的方式来写
arm-fsl-linux-gnueabi-gcc 交叉编译工具链不能正常链接库
1. 使用gcc -o simplescan simplescan.c -lbluetooth 可以编译程序。 2. arm-fsl-linux-gnueabi-gcc -o simplescan simplescan.c -lbluetooth 这样编译程序时提示找不头文件。 3. arm-fsl-linux-gnueabi-gcc -o simplescan simplescan.c -I/usr/include/ -I/usr/include/i386-linux-gnu 手动设置头文件路径后,提示找不到库 /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find -lbluetooth collect2: ld returned 1 exit status 4. 手动指定库路径编译 arm-fsl-linux-gnueabi-gcc -o simplescan simplescan.c -I/usr/include/ -I/usr/include/i386-linux-gnu -L/usr/lib/i386-linux-gnu 编译提示 simplescan.c:(.text+0x84): undefined reference to `hci_get_route' simplescan.c:(.text+0x90): undefined reference to `hci_open_dev' simplescan.c:(.text+0x11c): undefined reference to `hci_inquiry' simplescan.c:(.text+0x170): undefined reference to `ba2str' simplescan.c:(.text+0x1c8): undefined reference to `hci_read_remote_name' collect2: ld returned 1 exit status 5.使用arm-fsl-linux-gnueabi-nm -D bluetooth_build/lib/libbluetooth.so.3.13.0 查看库里函数,函数也存在。 000061e8 T hci_get_route 000063bc T hci_inquiry 00006ab4 T hci_le_add_white_list 00006c90 T hci_le_clear_white_list 00008ca0 T hci_le_conn_update 00008b44 T hci_le_create_conn 00006c04 T hci_le_read_white_list_size 00006b5c T hci_le_rm_white_list 00008ac8 T hci_le_set_advertise_enable 00008988 T hci_le_set_scan_enable 00008a10 T hci_le_set_scan_parameters 00005bd0 T hci_lmtostr 00005b98 T hci_lptostr 00006520 T hci_open_dev 这是什么情况? # 补充问题: 其实我的bluetooth的链接也已经编译了,使用-L指向我的链接库时,也是提示没有那些函数。 因为gcc编译可以通过,我就想着链接一下gcc用的动态库看可不可以通过。结果还是一样的。 所以百思不得其解。找不到要往哪个方向查了。 使用nm 对比了i386的蓝牙库和用交叉工具编译的蓝牙库,有没太大的差异 这是我的库 file work/bluetooth/bluetooth_build/lib/libbluetooth.so.3.13.0 work/bluetooth/bluetooth_build/lib/libbluetooth.so.3.13.0: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped
VPATH多路径搜索头文件的问题
初学内核编程,写了一个makefile文件,使用VPATH全局变量设置头文件搜索路径可还是显示找不到 makefile文件内容如下: ``` ifneq ($(KERNELRELEASE),) obj-m += http.o else PWD := $(shell pwd) KVER := $(shell uname -r) KDIR := /lib/modules/$(KVER)/build VPATH = /usr/include:/usr/include/x86_64-linux-gnu:/usr/lib/gcc/x86_64-linux-gnu/4.8/include:/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed:/usr/local/include default: $(MAKE) -C $(KDIR) M=$(PWD) modules all: make -C $(KDIR) M=$(PWD) modules clean: rm -rf *.o *.mod.c *.ko *.symvers *.order *.makers endif ``` 代码如下: ``` #include <linux/netfilter.h> #include <linux/init.h> #include <linux/module.h> #include <linux/netfilter_ipv4.h> #include <linux/ip.h> #include <linux/inet.h> #include <stdlib.h> /** * Hook function to be called. * We modify the packet's src IP. */ unsigned int my_hookfn(const struct nf_hook_ops *ops, struct sk_buff *skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff *)) { struct iphdr *iph; iph = ip_hdr(skb); int * temp = iph; iph = realloc(iph,sizeof(iph)+4); printk(KERN_INFO"%lu\n",sizeof(*iph)); return NF_ACCEPT; } /* A netfilter instance to use */ static struct nf_hook_ops nfho = { .hook = my_hookfn, .pf = PF_INET, .hooknum = NF_INET_PRE_ROUTING, .priority = NF_IP_PRI_FIRST, .owner = THIS_MODULE, }; static int __init http_init(void) { if (nf_register_hook(&nfho)) { printk(KERN_ERR"nf_register_hook() failed\n"); return -1; } return 0; } static void __exit http_exit(void) { nf_unregister_hook(&nfho); } module_init(http_init); module_exit(http_exit); MODULE_AUTHOR("flyking"); MODULE_LICENSE("GPL"); ``` 错误提示如下: ``` make -C /lib/modules/3.13.0-113-generic/build M=/home/test/fk modules make[1]: 正在进入目录 `/usr/src/linux-headers-3.13.0-113-generic' CC [M] /home/test/fk/http.o /home/test/fk/http.c:7:20: fatal error: stdlib.h: 没有那个文件或目录 #include <stdlib.h> ^ compilation terminated. make[2]: *** [/home/test/fk/http.o] 错误 1 make[1]: *** [_module_/home/test/fk] 错误 2 make[1]:正在离开目录 `/usr/src/linux-headers-3.13.0-113-generic' make: *** [default] 错误 2 ## ```
c基础:linux文件包含问题
一个头文件test.h #ifndef TEST_H #define TEST_H void show(void); #endif 一个show函数的实现show.c #include "test.h" void show(void) { printf("showing\n"); } 一个主函数main.c #include <stdio.h> #include "test.h" int main(void) { show(); return 0; } 这三个文件存放在ubuntu的同一个目录下,执行 gcc -o main main.c, 有错误,main.c:(.text+0x19): undefined reference to `show'。 有点纳闷,该怎么破解,求指导!
arm-linux/bin/ld: cannot find -lopencv_imgproc
用qte编译一个opencv程序时,显示如下错误: ligang@ligang-virtual-machine:/work/qtepro/opencv$ make /mysoftware/qte/bin/qmake -unix -o Makefile opencv.pro arm-linux-g++ -Wl,-O1 -Wl,-rpath,/mysoftware/qte/lib -o opencv main.o -L/mysoftware/qte/lib -lopencv_imgproc -lopencv_core -lopencv_highgui -lopencv_ml /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_ml.so -lQtNetwork -L/mysoftware/tslib/lib -L/mysoftware/qte/lib -lQtCore -lm -lrt -ldl -lpthread /mysoftware/gcc-3.4.5-glibc-2.3.6/bin/../lib/gcc/arm-linux/3.4.5/../../../../arm-linux/bin/ld: skipping incompatible /mysoftware/qte/lib/libopencv_imgproc.so when searching for -lopencv_imgproc /mysoftware/gcc-3.4.5-glibc-2.3.6/bin/../lib/gcc/arm-linux/3.4.5/../../../../arm-linux/bin/ld: skipping incompatible /mysoftware/qte/lib/libopencv_imgproc.so when searching for -lopencv_imgproc /mysoftware/gcc-3.4.5-glibc-2.3.6/bin/../lib/gcc/arm-linux/3.4.5/../../../../arm-linux/bin/ld: cannot find -lopencv_imgproc 配置应该都是正确的,难道是opencv的库没有头文件库吗?还是需要该它的symbollink?
why undefined reference to system function(such as SHA512_Init) on linux gcc?
我想问一下用以下代码我以及表明了头文件而且也存在这些头文件并且这些函数确 实存在于这些头文件中,为什还显示undefined reference to? 第一次用这个,很希望大家能够帮我看看谢谢 ``` #include <string.h> #include <stdio.h> #include <openssl/rsa.h> #include <openssl/pem.h> #include <openssl/err.h> #include <openssl/sha.h> #include <openssl/crypto.h> #define PUBLIC_KEY_PATH ("/home/yang_mingkai/rsa_private_key.pem") #define PRIVATE_KEY_PATH ("/home/yang_mingkai/rsa_public_key.pem") void printHash(unsigned char *md, int len) { int i = 0; for (i = 0; i < len; i++) { printf("%02x", md[i]); } printf("\n"); } RSA* ReadPrivateKey(char* p_KeyPath) { FILE *fp = NULL; char szKeyPath[1024]; RSA *priRsa = NULL, *pubRsa = NULL, *pOut = NULL; printf("PrivateKeyPath[%s] \n", p_KeyPath); /* Žò¿ªÃÜÔ¿ÎÄŒþ */ if(NULL == (fp = fopen(p_KeyPath, "r"))) { printf( "fopen[%s] failed \n", p_KeyPath); return NULL; } /* »ñÈ¡ËœÃÜÔ¿ */ priRsa = PEM_read_RSAPrivateKey(fp, NULL, NULL,NULL); if(NULL == priRsa) { ERR_print_errors_fp(stdout); printf( "PEM_read_RSAPrivateKey\n"); fclose(fp); return NULL; } fclose(fp); pOut = priRsa; return pOut; } /*¶ÁÈ¡¹«³×*/ RSA* ReadPublicKey(char* p_KeyPath) { FILE *fp = NULL; char szKeyPath[1024]; RSA *priRsa = NULL, *pubRsa = NULL, *pOut = NULL; printf("PublicKeyPath[%s]\n", p_KeyPath); /* Žò¿ªÃÜÔ¿ÎÄŒþ */ if(NULL == (fp = fopen(p_KeyPath, "r"))) { printf( "fopen[%s] \n", p_KeyPath); return NULL; } /* »ñÈ¡ËœÃÜÔ¿ */ if(NULL == (priRsa = PEM_read_RSA_PUBKEY(fp, NULL, NULL,NULL))) { printf( "PEM_read_RSAPrivateKey error\n"); fclose(fp); return NULL; } fclose(fp); pOut = priRsa; return pOut; } int main() { char *ct = "55dsd421fd4df1x21c1d4sd21sd51s5"; char *buf; char *buf2; RSA *pubKey; RSA *privKey; int len; // int nOutLen; buf = malloc(520); buf2 = malloc(520); SHA512_CTX c; unsigned char md[SHA512_DIGEST_LENGTH]; sha512_init(&c); SHA512_Update(&c, ct, strlen(ct)); SHA512_Final(md, &c); OPENSSL_cleanse(&c, sizeof(c)); printHash(md, SHA512_DIGEST_LENGTH); privKey = ReadPrivateKey(PRIVATE_KEY_PATH); if (!privKey) { ERR_print_errors_fp (stderr); exit (1); } pubKey = ReadPublicKey(PUBLIC_KEY_PATH); if(!pubKey) { RSA_free(privKey); printf("Error: can't load public key"); exit(1); } len = RSA_private_encrypt(SHA512_DIGEST_LENGTH, md, buf, privKey,RSA_PKCS1_PADDING); if (len != 256) { printf("Error: ciphertext should match length of key len = %d \n", len); exit(1); } printf("RSA_private_encrypt:"); printHash(buf, strlen(buf)); /*¹«Ô¿œâÃÜ*/ RSA_public_decrypt(len, (const unsigned char*)buf, (unsigned char*)buf2, pubKey,RSA_PKCS1_PADDING); printf("RSA_public_decrypt:"); printHash(buf2, strlen(buf2)); rsa_free(privKey); rsa_free(pubKey); free(buf); free(buf2); return 0; } ```
V412 编程 运行在开发板上出现段错误
最近在做摄像头模块编程 : 对于库的移植 1.libjpeg生成的lib ,将该目录下的 库文件所有拷贝到nfsdir中的lib目录中(/home/nfsdir/lib) 2.libjpeg生成的lib, 将该目录下的 库文件所有拷贝到交叉工具链 lib (/home/farsight/env_item/toolchain-4.5.1-farsight/arm-none-linux-gnueabi/sys-root/lib/ ) 目录下 3.libjpeg生成的include, 将该目录下的 库文件所有拷贝到交叉工具链inluce目录下(/home/farsight/env_item/toolchain-4.5.1-farsight/arm-none-linux-gnueabi/sys-root/usr/include) ......... 对于编辑程序运行程序 过了 Linux上运行指令 ~:arm-linux-gcc j2pgcamera.c -o jj -ljpeg 拷贝执行文件到nfsdir: cp jj /home/nfsdir 终端输出结果: Capture one frame saved in YUYV.jpg Segmentation fault 不知到怎样出错就在 linux进行了三方库的移直 运行指令gcc ~: gcc j2pgcamera.c -ljpeg ~: a.out 程序正常运行 。 问题: 问1.为什么在Linux系统下能跑 在交叉编译环境不能跑 2.出现这样的错误如何进行解决 跟踪代码 假如是链接库出现了问题又该怎样进行跟踪?
使用tcl8.6共享库,遇到错误提示undefined reference to
项目中用到了tcl8.6的共享库,把tcl的源码下载后在ubuntu上将tcl的库编译出来了。但是在编译项目的时候总是报未定义引用的错误,我检查了自己编译出来的libtcl8.6.so,这个共享库中是有tclStringType的定义的,也检查了声明tclStringType的头文件,编译tcl共享库时的头文件与编译项目时的头文件是一致的。 以下是共享库符号检查和编译的结果,跪求武林高手出手相帮,不胜感激! nm -l /home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686/liboms_shr.so|grep tclStringType U tclStringType nm -l /usr/lib/i386-linux-gnu/libtcl8.6.so|grep tclStringType 001a1034 d tclStringType gcc -g -o /home/water/Documents/eaf/kit/test/bin/Linux_3.19.0_i686/TableDump Linux_3.19.0_i686/TableDump.o -L/home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686 -loms0_shr -L/home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686 -loms_shr -L/home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686 -lstub -L/usr/lib/i386-linux-gnu -ltcl8.6 -L/usr/lib/i386-linux-gnu -lpthread -L/usr/lib/i386-linux-gnu -lresolv -L/usr/lib/i386-linux-gnu -lm -L/usr/lib/i386-linux-gnu -lc -Xlinker --rpath-link -Xlinker /home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686 /home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686/liboms_shr.so: undefined reference to `tclEmptyStringRep' /home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686/liboms_shr.so: undefined reference to `tclStringType' /home/water/Documents/eaf/kit/test/lib/Linux_3.19.0_i686/liboms_shr.so: undefined reference to `tclFreeObjList'
eclipse编译c源文件编译错误“undefined reference to”,如何解决?
问题描述:在Linux下用eclipse cdt插件开发c,main函数所在的文件引用了其他c文件中的函数,编译结果显示“undefined reference to”,头文件已经包含了。 编译显示结果: make all Making all in src make[1]: Entering directory `/home/wcl/workspace/TieeTerminal/src' gcc -g -O2 -o a.out TieeTerminal.o TieeTerminal.o: In function `get_serialinfo_from_cfgfile': /home/wcl/workspace/TieeTerminal/src/TieeTerminal.c:112: undefined reference to `read_profile_int' make[1]: Leaving directory `/home/wcl/workspace/TieeTerminal/src'。 个人分析:read_profile_int这个函数是在inifile.c中定义,gcc -g -O2 -o a.out TieeTerminal.o 该语句显示链接器没有链接inifile.o,但是怎么在eclipse里设置呢?
请教一下大拿,在内网linux上搭建git服务器怎么弄?
在网上找了很多资料,全都是yum install 或者是apt-get 一键安装,但是内网的话无法连接yum仓库安装,而且安装git 需要的一些环境组件什么 curl-devel expat-devel (缺少) gettext-devel openssl-devel zlib-devel (缺少) gcc perl-ExtUtils-MakeMaker 在centos 上缺少,且网上查找都是网络安装的方式,感觉头都大了...... 我能直接在笔记本上虚拟机安装一个,然后将虚拟机VM文件传到内网,然后再用这个VM文件替换原来的系统吗..... 请大神给点思路
ndk调用第三方静态链接库
android ndk调用第三方静态链接库(.a文件)在android里面我要调用客户给的一个.a库(另有一个.h的头文件),我用ndk-build命令把它编译成.so的过程中一直出现问题。cmd提示如下,请问怎么解决,详细一点,各位大神,拜托了! /i_cheng/android-ndk-r7b-windows/android-ndk-r7b/toolchains/arm-linux-androide bi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../. /arm-linux-androideabi/bin/ld.exe: ERROR: ./obj/local/armeabi/libpw.a(make_pw.o uses VFP register arguments, obj/local/armeabi/libshare.so does not :/i_cheng/android-ndk-r7b-windows/android-ndk-r7b/toolchains/arm-linux-androide bi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../. /arm-linux-androideabi/bin/ld.exe: failed to merge target specific data of file ./obj/local/armeabi/libpw.a(make_pw.o) ollect2: ld returned 1 exit status ake: *** [obj/local/armeabi/libshare.so] Error 1
关于Makefile 通用规则的疑问
我的Makefile如下: ``` TOPDIR = . CROSS_COMPILE = mips-linux-gnu- CC = $(CROSS_COMPILE)gcc CXX = $(CROSS_COMPILE)g++ STRIP = $(CROSS_COMPILE)strip AR = $(CROSS_COMPILE)ar CFLAGS = -g -O2 -Wall ifeq ($(FR), ON) CFLAGS += -DFACE_RECOG endif INCLUDE = -I./t02_sdk/include INCLUDE += -I./rtsp_server/include INCLUDE += -I./t30_sdk/include LIBS = -L./t02_sdk/lib/T30/glibc -lakubelli -lpthread LIBS += -L./rtsp_server -lrtsp_server LIBS += -L./rtsp_server/live555/lib/glibc -lliveMedia -lBasicUsageEnvironment -lUsageEnvironment -lgroupsock LIBS += -L./t30_sdk/lib/glibc -limp -lalog -lsysutils OBJS = akubelli_test.o imp.o TARGET = akubelli_test all: $(TARGET) $(TARGET): librtsp_server $(OBJS) $(CXX) $(OBJS) -o $(TARGET) $(INCLUDE) $(LIBS) -lpthread -lm -ldl -lrt -lstdc++ $(STRIP) $@ librtsp_server: make -C $(TOPDIR)/rtsp_server %o:%c $(CC) $(INCLUDE) $(CFLAGS) $(LIBS) -c $< -o $@ .PHONY :clean clean: rm -rf $(TARGET) $(OBJS) make -C $(TOPDIR)/rtsp_server clean ``` Make结果: ![图片说明](https://img-ask.csdn.net/upload/201908/08/1565229938_880887.jpg) 疑问点: 通用规则 %o:%c $(CC) $(INCLUDE) $(CFLAGS) $(LIBS) -c $< -o $@ 按理说不是应该会打印出$(INCLUDE) $(CFLAGS)的详细信息吗? 但实际却没有打印,还报找不到头文件(头文件在:./rtsp_server/include/RTSPServer.hh),这是为什么 ------------------------------------------------------------------------- 补充: 加了info打印后的结果: ![图片说明](https://img-ask.csdn.net/upload/201908/08/1565235094_304092.jpg)![图片说明](https://img-ask.csdn.net/upload/201908/08/1565235102_141561.jpg) 任何信息都没打印,包括我随便 echo 一个字符串都没输出的
vscode debug C++ 时无法打开控制台(或者说运行不了 gdb.exe)?
**我在使用 vscode 配置 C++ 环境时** **c_cpp_properties.json , tasks.json 都配置好了,** **编译项目和自动识别头文件,自动补全代码等都没有问题。** **但是我的 launch.json 不知道是不是出了问题** **无论怎么按 F5 都没有弹出控制台窗口 !!??** **不管内部还是外部控制台都没有弹出** **一直停留在下面这个界面** ![图片说明](https://img-ask.csdn.net/upload/201903/17/1552789222_97868.png) *** 没有报错!! *** *** 编译也一切正常 *** ** 我的 c_cpp_properties.json , tasks.json 和 launch.json 如下 ** ## c_cpp_properties.json ``` { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}\\**", "${workspaceFolder}\\**\\**", "D:\\Program Files\\mingw64\\include", "D:\\Program Files\\mingw64\\opt\\include", "D:\\Program Files\\mingw64\\opt\\lib\\libffi-3.2.1\\include", "D:\\Program Files\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include", "D:\\Program Files\\mingw64\\x86_64-w64-mingw32\\include", "D:\\Program Files\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++", "D:\\Program Files\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\bits", "D:\\Program Files\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\x86_64-w64-mingw32\\bits", "D:\\Program Files\\mingw64\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\x86_64-w64-mingw32" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "cStandard": "c11", "intelliSenseMode": "msvc-x64", "configurationProvider": "vector-of-bool.cmake-tools" } ], "version": 4 } ``` ## tasks.json ``` { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "group": { "kind": "build", "isDefault": true }, "presentation": { "echo": true, "reveal": "always", "focus": false, "panel": "shared" }, "windows": { "command": "D:\\MyData\\Programming\\C++Workspace\\.vscode\\make.sh", "args": [ "${fileDirname}", "${fileBasenameNoExtension}" ] }, "linux": { "command": "bash" }, "args": [] }, ] } ``` ## launch.json ``` { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "D:\\Program Files\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }, ] } ``` **我的c_cpp_properties.json 和 tasks.json 应该是没有出错的** **因为并没有报头文件包含错误和编译错误** **我在命令行下用 mingw32-make 编译是完全没有问题的** **在命令行下用 gdb 调试也完全没有问题** **所以不要考虑我出现的错误是环境变量什么的。** **我的 git-bash 也运行正常,所以我的sh 文件也是能正常运行的** **但是我在调试的时候没法打开控制台窗口 !!!** ** 是我的 vscode 无法运行 gdb ?!! ** **还是我的 vscode 无法运行cmd?!!**
关于栈的Top操作的问题 c语言实现 链表实现 数据结构
头文件 struct Node{ int data; struct Node *Next; }; typedef struct Node *PtrToNode; typedef PtrToNode Stack; int IsEmpty(Stack S); void MakeEmpty(Stack S); Stack CreateStack(void); void Push(int X,Stack S); int Top(Stack S); void Pop(Stack S); #include <stdio.h> #include "stack.h" #include <stdlib.h> int IsEmpty(Stack S) { return S->Next == NULL; } void MakeEmpty(Stack S) { if(S == NULL) printf("must"); else while(!IsEmpty(S)) Pop(S); } Stack CreateStack(void) { Stack S; S = malloc(sizeof(struct Node)); if(S == NULL) printf("Out of range"); S->Next = NULL; MakeEmpty(S); return S; } void Push(int X,Stack S) { PtrToNode TmpCell; TmpCell = malloc(sizeof(struct Node)); if(TmpCell == NULL) printf("Out of range"); else { TmpCell->data = X; TmpCell->Next = S->Next; S->Next = TmpCell; } } int Top(Stack S) { if(!IsEmpty(S)) return S->Next->data; printf("Out of range"); return 0; } void Pop(Stack S) { PtrToNode FirstCell; if(IsEmpty(S)) printf("Out of range"); else { FirstCell = S->Next; S->Next = S->Next->Next; free(FirstCell); } } 这个基本上是照书一点一点打的,我不太懂关于Top操作 为什么知道了指向栈底部的指针S就可以用 S->Next->data 得知栈顶元素,这个我自己实验过是对的。 因为假如这个栈是由3个链表连起来的,S->Next->data应该得到的是第二个链表里面的元素啊。 S->Next->Next->data才是栈顶的元素。 我也曾怀疑过是不是Push操作改变了指针S指向的地方。。但打印出的S的地址都是一样啊。 顺便可以问一下,假如我要打印某个地址 是应该 用 %d 吗,我的文本编辑器总报warning。。 提一下我的文本编辑器是geany 编译器是gcc Linux下 我是小白。。求指教啊啊啊啊。。google后也不明白。。卡了好几天了 希望有人可以帮我一下..
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问